package org.apache.struts.beanaction.httpmap;
import java.util.Enumeration;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
/**
* Map to wrap cookie names and values (READ ONLY).
* <p/>
* <p/>
* <p/>
* Date: Mar 11, 2004 11:31:35 PM
*
* @author Clinton Begin
*/
public class CookieMap extends BaseHttpMap {
private Cookie[] cookies;
public CookieMap(HttpServletRequest request) {
cookies = request.getCookies();
}
protected Enumeration getNames() {
return new CookieEnumerator(cookies);
}
protected Object getValue(Object key) {
for (int i = 0; i < cookies.length; i++) {
if (key.equals(cookies[i].getName())) {
return cookies[i].getValue();
}
}
return null;
}
protected void putValue(Object key, Object value) {
throw new UnsupportedOperationException();
}
protected void removeValue(Object key) {
throw new UnsupportedOperationException();
}
/**
* Cookie Enumerator Class
*/
private class CookieEnumerator implements Enumeration {
private int i = 0;
private Cookie[] cookieArray;
public CookieEnumerator(Cookie[] cookies) {
this.cookieArray = cookies;
}
public boolean hasMoreElements() {
return cookieArray.length > i;
}
public Object nextElement() {
Object element = cookieArray[i];
i++;
return element;
}
}
}