package org.sothis.mvc.http.servlet;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections4.iterators.EnumerationIterator;
import org.sothis.mvc.Headers;
public class ServletRequestHttpHeaders extends Headers {
private final HttpServletRequest request;
public ServletRequestHttpHeaders(HttpServletRequest request) {
super();
this.request = request;
}
@Override
public Iterator<String> names() {
return new EnumerationIterator<String>(request.getHeaderNames());
}
@Override
public String[] getStrings(String name) {
Enumeration<String> e = this.request.getHeaders(name);
List<String> values = new ArrayList<String>(1);
while (e.hasMoreElements()) {
values.add(e.nextElement());
}
String[] ret = new String[values.size()];
values.toArray(ret);
return ret;
}
@Override
public void addString(String name, String value) {
throw new UnsupportedOperationException();
}
@Override
public void setString(String name, String value) {
throw new UnsupportedOperationException();
}
@Override
public void setStrings(String name, String[] value) {
throw new UnsupportedOperationException();
}
@Override
public void remove(String name) {
throw new UnsupportedOperationException();
}
@Override
public boolean contains(String name) {
return request.getHeader(name) != null;
}
}