/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.xml.ws.server;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import gw.util.GosuStringUtil;
import gw.xml.ws.HttpHeaders;
import javax.servlet.http.HttpServletRequest;
public class ServletWebservicesRequest extends WebservicesRequest {
private final HttpServletRequest _request;
public ServletWebservicesRequest( HttpServletRequest request ) {
_request = request;
}
@Override
public String getPathInfo() {
return _request.getPathInfo();
}
@Override
public String getQueryString() {
return _request.getQueryString();
}
@Override
public HttpServletRequest getHttpServletRequest() {
return _request;
}
@Override
public String getRequestURL() {
return _request.getRequestURL().toString();
}
@Override
public InputStream getInputStream() throws IOException {
return _request.getInputStream();
}
@Override
public HttpHeaders getHttpHeaders() {
HttpHeaders ret = new HttpHeaders();
Enumeration e = _request.getHeaderNames();
while ( e.hasMoreElements() ) {
String headerName = (String) e.nextElement();
List<String> values = new ArrayList<String>();
Enumeration e2 = _request.getHeaders( headerName );
while ( e2.hasMoreElements() ) {
String value = (String) e2.nextElement();
values.add( value );
}
ret.setHeader( headerName, GosuStringUtil.join( ", ", values ) );
}
return ret;
}
@Override
public void createSession() {
_request.getSession( true );
}
}