/*
* Copyright 2000 Draagon Software, Inc. All Rights Reserved.
*
* This software is the proprietary information of Draagon Software, Inc.
* Use is subject to license terms.
*
*/
package com.draagon.wii.servlet;
import java.io.*;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import javax.servlet.http.*;
import com.draagon.wii.util.NameValuePair;
import com.draagon.wii.*;
import com.draagon.wii.services.*;
public abstract class WIIServletRequestAdapter implements WIIRequest
{
protected HttpServletRequest mReq = null;
private InputStream mExternalIS = null;
private String mExternalContentType = null;
public void setExternalInputStream( InputStream is )
{
mExternalIS = is;
}
public InputStream getExternalInputStream()
{
return mExternalIS;
}
public void setExternalContentType( String type )
{
mExternalContentType = type;
}
public String getExternalContentType()
{
return mExternalContentType;
}
public WIIServletRequestAdapter( HttpServletRequest req )
{
mReq = req;
}
// NOTE: These are OS/Web specific
public HttpServletRequest getServletRequest()
{
return mReq;
}
public WIIService getWIIService( String name )
throws WIIException
{
// Do a lookup based on the name
// WARNING: This needs to be implemented
if ( name.equals( "version" ))
{
WIIService f = new WIIVersionService();
f.setName( "version" );
return f;
}
return null;
}
// NOTE: These are from ServletRequest
public String getCharacterEncoding()
{
return mReq.getCharacterEncoding();
}
public int getContentLength()
{
return mReq.getContentLength();
}
public String getContentType()
{
return mReq.getContentType();
}
public InputStream getInputStream()
throws IOException
{
return mReq.getInputStream();
}
/* public Locale getLocale()
{
return mReq.getLocale();
}
public Enumeration getLocales()
{
return mReq.getLocales();
}
*/
@SuppressWarnings("unchecked")
public List<NameValuePair> getRequestHeaders()
{
List<NameValuePair> tmp = new ArrayList<NameValuePair>();
for ( Enumeration<String> e = mReq.getHeaderNames(); e.hasMoreElements(); )
{
String name = (String) e.nextElement();
String value = mReq.getHeader( name );
tmp.add( new NameValuePair( name, value ));
}
return tmp;
}
public String getParameter( String name )
{
return mReq.getParameter( name );
}
@SuppressWarnings("unchecked")
public Enumeration<String> getParameterNames()
{
return mReq.getParameterNames();
}
/* public String[] getParameterValues( String name )
{
return mReq.getParameterValues( name );
}
*/
public Object getAttribute( String name )
{
return mReq.getAttribute( name );
}
public void removeAttribute( String name )
{
// mReq.removeAttribute( name );
mReq.setAttribute( name, null );
}
public void setAttribute( String name, Object o )
{
mReq.setAttribute( name, o );
}
public String getProtocol()
{
return mReq.getProtocol();
}
public BufferedReader getReader()
throws IOException
{
return mReq.getReader();
}
public String getRemoteAddr()
{
return mReq.getRemoteAddr();
}
public String getRemoteHost()
{
return mReq.getRemoteHost();
}
// public String getScheme()
// {
// return mReq.getScheme();
// }
public String getServerName()
{
return mReq.getServerName();
}
public int getServerPort()
{
return mReq.getServerPort();
}
/* public boolean isSecure()
{
return mReq.isSecure();
}
*/
// NOTE: These are from HTTPServletRequest
// public String getAuthType()
// {
// return mReq.getAuthType();
// }
// public String getContextPath()
// {
// return mReq.getContextPath();
// }
// public Cookie[] getCookies()
// {
// return mReq.getCookies();
// }
// public long getDateHeader( String name )
// {
// return mReq.getDateHeader( name );
// }
/* public String getHeader( String name )
{
return mReq.getHeader( name );
}
public Enumeration getHeaderNames()
{
return mReq.getHeaderNames();
}
*/
/* public Enumeration getHeaders( String name )
{
return mReq.getHeaders( name );
}
*/
public int getIntHeader( String name )
{
return mReq.getIntHeader( name );
}
public String getMethod()
{
return mReq.getMethod();
}
public String getPathInfo()
{
return mReq.getPathInfo();
}
// public String getPathTranslated()
// {
// return mReq.getPathTranslated();
// }
public String getQueryString()
{
return mReq.getQueryString();
}
// public String getRemoteUser()
// {
// return mReq.getRemoteUser();
// }
// public String getRequestedSessionId()
// {
// return mReq.getRequestedSessionId();
// }
// public String getRequestURI()
// {
// return mReq.getRequestURI();
// }
// public String getServletPath()
// {
// return mReq.getServletPath();
// }
}