/* * Copyright (c) 2013 the original author or authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package io.werval.api.outcomes; import java.nio.charset.Charset; import java.util.List; import java.util.Map; /** * Outcomes fluent api. * * @navassoc 1 create * OutcomeBuilder */ public interface Outcomes { /** * @param status HTTP Status Code * * @return Builder for an Outcome of the given status */ OutcomeBuilder status( int status ); /** * @return Builder for a 200 OK Outcome */ OutcomeBuilder ok(); /** * @param body Response body as bytes * * @return Builder for a 200 OK Outcome */ OutcomeBuilder ok( byte[] body ); /** * @param body Response body as String using the default character encoding * * @return Builder for a 200 OK Outcome */ OutcomeBuilder ok( String body ); /** * @param body Response body as String * @param charset Body charset * * @return Builder for a 200 OK Outcome */ OutcomeBuilder ok( String body, Charset charset ); /** * @return Builder for a 201 CREATED Outcome */ OutcomeBuilder created(); /** * @return Builder for a 202 ACCEPTED Outcome */ OutcomeBuilder accepted(); /** * @return Builder for a 203 NON_AUTHORITATIVE_INFORMATION Outcome */ OutcomeBuilder nonAuthoritativeInformation(); /** * @return Builder for a 204 NO_CONTENT Outcome */ OutcomeBuilder noContent(); /** * @return Builder for a 205 RESET_CONTENT Outcome */ OutcomeBuilder resetContent(); /** * @return Builder for a 206 PARTIAL_CONTENT Outcome */ OutcomeBuilder partialContent(); /** * @return Builder for a 207 MULTI_STATUS Outcome */ OutcomeBuilder multiStatus(); /** * @param url Redirect target * * @return Builder for a 302 FOUND Outcome */ OutcomeBuilder found( String url ); /** * @param url Redirect target * @param queryString QueryString values * * @return Builder for a 302 FOUND Outcome */ OutcomeBuilder found( String url, Map<String, List<String>> queryString ); /** * @param url Redirect target * * @return Builder for a 303 SEE_OTHER Outcome */ OutcomeBuilder seeOther( String url ); /** * @param url Redirect target * @param queryString QueryString values * * @return Builder for a 303 SEE_OTHER Outcome */ OutcomeBuilder seeOther( String url, Map<String, List<String>> queryString ); /** * @return Builder for a 304 NOT_MODIFIED Outcome */ OutcomeBuilder notModified(); /** * @param url Redirect target * * @return Builder for a 307 TEMPORARY_REDIRECT Outcome */ OutcomeBuilder temporaryRedirect( String url ); /** * @param url Redirect target * @param queryString QueryString values * * @return Builder for a 307 TEMPORARY_REDIRECT Outcome */ OutcomeBuilder temporaryRedirect( String url, Map<String, List<String>> queryString ); /** * @return Builder for a 400 BAD_REQUEST Outcome */ OutcomeBuilder badRequest(); /** * @return Builder for a 401 UNAUTHORIZED Outcome */ OutcomeBuilder unauthorized(); /** * @return Builder for a 403 FORBIDDEN Outcome */ OutcomeBuilder forbidden(); /** * @return Builder for a 404 NOT_FOUND Outcome */ OutcomeBuilder notFound(); /** * @return Builder for a 405 METHOD_NOT_ALLOWED Outcome */ OutcomeBuilder methodNotAllowed(); /** * @return Builder for a 406 NOT_ACCEPTABLE Outcome */ OutcomeBuilder notAcceptable(); /** * @return Builder for a 408 REQUEST_TIMEOUT Outcome */ OutcomeBuilder requestTimeout(); /** * @return Builder for a 409 CONFLICT Outcome */ OutcomeBuilder conflict(); /** * @return Builder for a 410 GONE Outcome */ OutcomeBuilder gone(); /** * @return Builder for a 412 PRECONDITION_FAILED Outcome */ OutcomeBuilder preconditionFailed(); /** * @return Builder for a 413 REQUEST_ENTITY_TOO_LARGE Outcome */ OutcomeBuilder requestEntityTooLarge(); /** * @return Builder for a 414 REQUEST_URI_TOO_LONG Outcome */ OutcomeBuilder requestUriTooLong(); /** * @return Builder for a 415 UNSUPPORTED_MEDIA_TYPE Outcome */ OutcomeBuilder unsupportedMediaType(); /** * @return Builder for a 417 EXPECTATION_FAILED Outcome */ OutcomeBuilder expectationFailed(); /** * @return Builder for a 422 UNPROCESSABLE_ENTITY Outcome */ OutcomeBuilder unprocessableEntity(); /** * @return Builder for a 423 LOCKED Outcome */ OutcomeBuilder locked(); /** * @return Builder for a 424 FAILED_DEPENDENCY Outcome */ OutcomeBuilder failedDependency(); /** * @return Builder for a 429 TOO_MANY_REQUEST Outcome */ OutcomeBuilder tooManyRequest(); /** * @return Builder for a 500 INTERNAL_SERVER_ERROR Outcome */ OutcomeBuilder internalServerError(); /** * @return Builder for a 501 NOT_IMPLEMENTED Outcome */ OutcomeBuilder notImplemented(); /** * @return Builder for a 502 BAD_GATEWAY Outcome */ OutcomeBuilder badGateway(); /** * @return Builder for a 503 SERVICE_UNAVAILABLE Outcome */ OutcomeBuilder serviceUnavailable(); /** * @return Builder for a 504 GATEWAY_TIMEOUT Outcome */ OutcomeBuilder gatewayTimeout(); /** * @return Builder for a 505 HTTP_VERSION_NOT_SUPPORTED Outcome */ OutcomeBuilder httpVersionNotSupported(); /** * @return Builder for a 507 INSUFFICIENT_STORAGE Outcome */ OutcomeBuilder insufficientStorage(); }