You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.4 KiB
Java
98 lines
2.4 KiB
Java
package org.gcube.resourcemanagement.manager.webapp.context;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.Optional;
|
|
|
|
import org.gcube.resourcemanagement.manager.io.exceptions.CodeException;
|
|
|
|
/**
|
|
* The response to a {@link RequestToResourceRegistry}.
|
|
*
|
|
* @author Manuele Simi (ISTI CNR)
|
|
*
|
|
*/
|
|
public class ResponseFromResourceRegistry {
|
|
|
|
private boolean success = false;
|
|
|
|
private String message;
|
|
|
|
private List<? extends CodeException> exceptions = new ArrayList<>();
|
|
|
|
protected ResponseFromResourceRegistry() {}
|
|
|
|
public boolean wasSuccessful() {return success;}
|
|
|
|
/**
|
|
* Gets the message associated to the response
|
|
* @return the message
|
|
*/
|
|
public Optional<String> getMessage() {
|
|
return Optional.ofNullable(message);
|
|
}
|
|
|
|
/**
|
|
* Sets the message for the response.
|
|
* @param message the message
|
|
*/
|
|
public ResponseFromResourceRegistry setMessage(String message) {
|
|
this.message = message;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* The {@link Exception} returned by the RR.
|
|
* @return the exception
|
|
*/
|
|
public Optional<? extends CodeException> getException() {
|
|
return Optional.ofNullable(success? null: this.exceptions.get(0));
|
|
}
|
|
|
|
/**
|
|
* Creates a response from an exception.
|
|
* @param e
|
|
* @return the response
|
|
*/
|
|
public static <E extends CodeException> ResponseFromResourceRegistry fromException(E e) {
|
|
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
|
|
response.success = false;
|
|
response.exceptions = Collections.singletonList(e);
|
|
return response;
|
|
}
|
|
|
|
/**
|
|
* Creates a success response
|
|
* @return the response
|
|
*/
|
|
public static ResponseFromResourceRegistry newSuccessResponse() {
|
|
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
|
|
response.success = true;
|
|
return response;
|
|
}
|
|
|
|
/**
|
|
* Creates a failure response
|
|
* @return the response
|
|
*/
|
|
public static ResponseFromResourceRegistry newFailureResponse(String reason) {
|
|
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
|
|
response.success = false;
|
|
response.setMessage(reason);
|
|
return response;
|
|
}
|
|
|
|
/**
|
|
* Creates a success response with an associated message.
|
|
* @param message
|
|
* @return the response
|
|
*/
|
|
public static ResponseFromResourceRegistry newSuccessResponseWithMessage(String message) {
|
|
ResponseFromResourceRegistry response = ResponseFromResourceRegistry.newSuccessResponse();
|
|
response.message = message;
|
|
return response;
|
|
}
|
|
|
|
}
|