package cz.cuni.mff.d3s.been.persistence; import java.util.Collection; /** * Factory for {@link QueryAnswer} objects * * @author darklight */ public final class QueryAnswerFactory { /** * Create a query answer with resulting data * * @param data Data to send back * * @return The answer */ public static final QueryAnswer fetched(Collection<String> data) { return new DataQueryAnswer(QueryStatus.OK, data); } /** * Create an answer saying that items were successfully deleted * * @return The answer */ public static final QueryAnswer deleted() { return new SimpleQueryAnswer(QueryStatus.OK); } /** * Create an answer saying the persistence layer is down and that the query cannot be executed at the moment * * @return The answer */ public static final QueryAnswer persistenceDown() { return new SimpleQueryAnswer(QueryStatus.PERSISTENCE_DOWN); } /** * Create an answer saying something went terribly wrong, but we don't know what it was * * @return The answer */ public static final QueryAnswer unknownError() { return new SimpleQueryAnswer(QueryStatus.UNKNOWN); } /** * Create an answer saying the received query was somehow invalid or corrupted. * * @return The answer */ public static final QueryAnswer badQuery() { return new SimpleQueryAnswer(QueryStatus.UNSUPPORTED_QUERY); } /** * Create an answer saying the query timed out before it had a chance to be evaluated. * * @return The answer */ public static final QueryAnswer transportTimedOut() { return new SimpleQueryAnswer(QueryStatus.TRANSPORT_TIMED_OUT); } /** * Create an answer saying the query started to get evaluated, but didn't get back in time * * @return The answer */ public static final QueryAnswer processingTimedOut() { return new SimpleQueryAnswer(QueryStatus.PROCESSING_TIMED_OUT); } /** * Create an answer saying the query failed to execute on the persistence layer side * * @return The answer */ public static final QueryAnswer queryExecutionFailed() { return new SimpleQueryAnswer(QueryStatus.QUERY_EXECUTION_FAILED); } }