tweak some servlet models

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2324 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
sjfink 2008-01-09 20:46:05 +00:00
parent ed773cdf29
commit 6c08d95103
3 changed files with 31 additions and 10 deletions

View File

@ -17,26 +17,34 @@ import javax.servlet.ServletInputStream;
import com.ibm.wala.model.SyntheticFactory;
public class ServletRequest implements javax.servlet.ServletRequest {
private final java.util.Hashtable<String, Object> values = new java.util.Hashtable<String, Object>();
private final java.util.Hashtable<String, String> parameters = new java.util.Hashtable<String, String>();
private java.util.Hashtable<String, String> parameters;
private String encoding = "iso88591-1";
// lazily initialize bogus model of parameters
private void initParameters() {
parameters = new java.util.Hashtable<String, String>();
parameters.put(getInputString(), getInputString());
}
/**
* The semantics of this are bogus ... be careful to hijack this.
*/
protected static String getInputString() {
return "some input string";
}
/**
* The semantics of this are bogus ... be careful to hijack this.
*/
public ServletRequest() {
parameters.put(getInputString(), getInputString());
}
public Object getAttribute(String name) {
if (name.length() > 5) { // random condition.
if (name.length() > 5) { // random condition.
return values.get(name);
} else {
return SyntheticFactory.getObject();
@ -68,7 +76,7 @@ public class ServletRequest implements javax.servlet.ServletRequest {
int n = s.charAt(0);
return n;
}
};
}
@ -80,9 +88,11 @@ public class ServletRequest implements javax.servlet.ServletRequest {
public java.util.Enumeration getLocales() {
return new java.util.Enumeration() {
private boolean done = false;
public boolean hasMoreElements() {
return !done;
}
public Object nextElement() {
done = true;
return getLocale();
@ -92,22 +102,25 @@ public class ServletRequest implements javax.servlet.ServletRequest {
public String getParameter(String name) {
// Note, while the following is technically a more accurate model...
// return parameters.get(name);
// return parameters.get(name);
// I'm using the following simpler model for now to avoid some unnecessary analysis
// of flow through the heap. Revisit this decision if necessary.
// of flow through the heap. Revisit this decision if necessary.
return getInputString();
}
public java.util.Map<String, String> getParameterMap() {
initParameters();
return parameters;
}
public java.util.Enumeration<String> getParameterNames() {
initParameters();
return parameters.keys();
}
public String[] getParameterValues(String name) {
return new String[] {parameters.get(name)};
initParameters();
return new String[] { parameters.get(name) };
}
public java.lang.String getProtocol() {

View File

@ -18,11 +18,16 @@ import com.ibm.wala.annotations.Internal;
public class HttpServletRequest
extends com.ibm.wala.model.javax.servlet.ServletRequest
implements javax.servlet.http.HttpServletRequest {
private final java.util.Hashtable<String, String> headers = new java.util.Hashtable<String, String>();
private java.util.Hashtable<String, String> headers;
// lazily initialize bogus model of headers
private void initHeaders() {
headers = new java.util.Hashtable<String, String>();
headers.put(getInputString(), getInputString());
}
public HttpServletRequest() {
super();
headers.put(getInputString(), getInputString());
}
public String getAuthType() {
@ -45,14 +50,17 @@ public class HttpServletRequest
}
public String getHeader(String name) {
initHeaders();
return headers.get(name);
}
public java.util.Enumeration<String> getHeaderNames() {
initHeaders();
return headers.keys();
}
public java.util.Enumeration<String> getHeaders(String name) {
initHeaders();
return headers.elements();
}