blob: 92e263834f89e2fb0f6636b6b8f3b0839035d8a8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.axis2.transport.http.server;
import org.apache.http.Header;
import org.apache.http.HeaderIterator;
import org.apache.http.HttpException;
import org.apache.http.HttpRequest;
import org.apache.http.ProtocolVersion;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpProcessor;
import java.io.IOException;
import java.io.InputStream;
public class AxisHttpRequestImpl implements AxisHttpRequest {
private final HttpRequest request;
private final AxisHttpConnection conn;
private final HttpProcessor httpproc;
private final HttpContext context;
public AxisHttpRequestImpl(
final AxisHttpConnection conn,
final HttpRequest request,
final HttpProcessor httpproc,
final HttpContext context) {
super();
if (conn == null) {
throw new IllegalArgumentException("HTTP connection may not be null");
}
if (request == null) {
throw new IllegalArgumentException("HTTP request may not be null");
}
if (httpproc == null) {
throw new IllegalArgumentException("HTTP processor may not be null");
}
if (context == null) {
throw new IllegalArgumentException("HTTP context may not be null");
}
this.request = request;
this.conn = conn;
this.httpproc = httpproc;
this.context = context;
}
public void prepare() throws IOException, HttpException {
this.context.setAttribute(ExecutionContext.HTTP_CONNECTION, this.conn);
this.context.setAttribute(ExecutionContext.HTTP_REQUEST, this.request);
this.httpproc.process(this.request, this.context);
}
public String getMethod() {
return this.request.getRequestLine().getMethod();
}
public String getRequestURI() {
return this.request.getRequestLine().getUri();
}
public ProtocolVersion getProtocolVersion() {
return this.request.getRequestLine().getProtocolVersion();
}
public String getContentType() {
Header header = this.request.getFirstHeader(HTTP.CONTENT_TYPE);
if (header != null) {
return header.getValue();
} else {
return null;
}
}
public InputStream getInputStream() {
return this.conn.getInputStream();
}
public void addHeader(final Header header) {
this.request.addHeader(header);
}
public void addHeader(final String name, final String value) {
this.request.addHeader(name, value);
}
public boolean containsHeader(final String name) {
return this.request.containsHeader(name);
}
public Header[] getAllHeaders() {
return this.request.getAllHeaders();
}
public Header getFirstHeader(final String name) {
return this.request.getFirstHeader(name);
}
public Header[] getHeaders(String name) {
return this.request.getHeaders(name);
}
public Header getLastHeader(final String name) {
return this.request.getLastHeader(name);
}
public HeaderIterator headerIterator() {
return this.request.headerIterator();
}
public HeaderIterator headerIterator(final String name) {
return this.request.headerIterator(name);
}
public void removeHeader(final Header header) {
this.request.removeHeader(header);
}
public void removeHeaders(final String name) {
this.request.removeHeaders(name);
}
public void setHeader(final Header header) {
this.request.setHeader(header);
}
public void setHeader(final String name, final String value) {
this.request.setHeader(name, value);
}
public void setHeaders(Header[] headers) {
this.request.setHeaders(headers);
}
public HttpParams getParams() {
return this.request.getParams();
}
public void setParams(final HttpParams params) {
this.request.setParams(params);
}
}