package net.eusashead.hateoas.response; /* * #[license] * spring-responseentitybuilder * %% * Copyright (C) 2013 Eusa's Head * %% * 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. * %[license] */ import javax.servlet.http.HttpServletRequest; import net.eusashead.hateoas.header.Header; import org.springframework.http.ResponseEntity; /** * Implementations of this interface * build {@link ResponseEntity} with * a fluent API for adding body * content and headers. * * @author patrickvk * * @param <T> */ public interface ResponseBuilder<T> { /** * Get the {@link HttpServletRequest} * for this {@link ResponseBuilder} * @return the incoming {@link HttpServletRequest} */ HttpServletRequest getRequest(); /** * Add the supplied header to the * response */ ResponseBuilder<T> addHeader(Header<?> header); /** * Add the supplied header to the * response */ ResponseBuilder<T> addHeader(String name, String value); /** * Create an appropriate response * to a request. * @return The returned entity * should have an appropriate status code, * headers and body */ ResponseEntity<T> build(); }