resource-manager/webapp/src/main/java/org/gcube/resourcemanagement/manager/webapp/context/ResponseFromResourceRegistr...

118 lines
2.8 KiB
Java

package org.gcube.resourcemanagement.manager.webapp.context;
import java.util.Optional;
import org.gcube.common.gxrest.response.outbound.ErrorCode;
/**
* The response to a {@link RequestToResourceRegistry}.
*
* @author Manuele Simi (ISTI CNR)
*
*/
public class ResponseFromResourceRegistry {
private boolean success = false;
private String message;
private Exception exception;
private ErrorCode code;
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<Exception> getException() {
return Optional.ofNullable(success? null: this.exception);
}
/**
* Creates a response from an exception.
* @param e
* @return the response
*/
public static ResponseFromResourceRegistry fromException(Exception e) {
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
response.success = false;
response.exception = e;
return response;
}
/**
* The {@link ErrorCode} occurred when preparing the response.
* @return the error code or null
*/
public Optional<ErrorCode> getErrorCode() {
return Optional.ofNullable(success? null: this.code);
}
/**
* Creates a response from an error code.
* @param e
* @return the response
*/
public static ResponseFromResourceRegistry fromErrorCode(ErrorCode e) {
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
response.success = false;
response.code = 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;
}
}