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

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;
}
}