/* * Copyright (c) 2013-2015 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.runtime.http; import java.util.List; import java.util.Map; import java.util.Optional; import io.werval.api.http.Cookies; import io.werval.api.http.Headers; import io.werval.api.http.Method; import io.werval.api.http.ProtocolVersion; import io.werval.api.http.QueryString; import io.werval.api.http.Request; import io.werval.api.http.RequestBody; import io.werval.api.http.RequestHeader; import io.werval.api.i18n.Lang; import io.werval.api.mime.MediaRange; import io.werval.api.routes.ParameterBinders; import io.werval.api.routes.Route; /** * Request Instance. */ public class RequestInstance implements Request { private final RequestHeader header; private final RequestBody body; public RequestInstance( RequestHeader header, RequestBody body ) { this.header = header; this.body = body; } @Override public String identity() { return header.identity(); } @Override public ProtocolVersion version() { return header.version(); } @Override public Method method() { return header.method(); } @Override public String uri() { return header.uri(); } @Override public String path() { return header.path(); } @Override public QueryString queryString() { return header.queryString(); } @Override public String remoteAddress() { return header.remoteAddress(); } @Override public String host() { return header.host(); } @Override public int port() { return header.port(); } @Override public String domain() { return header.domain(); } @Override public Optional<String> contentType() { return header.contentType(); } @Override public Optional<String> charset() { return header.charset(); } @Override public boolean isKeepAlive() { return header.isKeepAlive(); } @Override public Headers headers() { return header.headers(); } @Override public Cookies cookies() { return header.cookies(); } @Override public Request bind( ParameterBinders parameterBinders, Route route ) { header.bind( parameterBinders, route ); return this; } @Override public Map<String, Object> parameters() { return header.parameters(); } @Override public List<Lang> acceptedLangs() { return header.acceptedLangs(); } @Override public Lang preferredLang() { return header.preferredLang(); } @Override public List<MediaRange> acceptedMimeTypes() { return header.acceptedMimeTypes(); } @Override public boolean acceptsMimeType( String mimeType ) { return header.acceptsMimeType( mimeType ); } @Override public String preferredMimeType( String... mimeTypes ) { return header.preferredMimeType( mimeTypes ); } @Override public RequestBody body() { return body; } }