1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.ibatis.struts.httpmap;
18
19 import com.ibatis.struts.httpmap.BaseHttpMap;
20
21 import javax.servlet.http.Cookie;
22 import javax.servlet.http.HttpServletRequest;
23 import java.util.Enumeration;
24
25 /***
26 * Map to wrap cookie names and values (READ ONLY).
27 * <p/>
28 * Date: Mar 11, 2004 11:31:35 PM
29 *
30 * @author Clinton Begin
31 */
32 public class CookieMap extends BaseHttpMap {
33
34 private Cookie[] cookies;
35
36 public CookieMap(HttpServletRequest request) {
37 cookies = request.getCookies();
38 }
39
40 protected Enumeration getNames() {
41 return new CookieEnumerator(cookies);
42 }
43
44 protected Object getValue(Object key) {
45 for (int i = 0; i < cookies.length; i++) {
46 if (key.equals(cookies[i].getName())) {
47 return cookies[i].getValue();
48 }
49 }
50 return null;
51 }
52
53 protected void putValue(Object key, Object value) {
54 throw new UnsupportedOperationException();
55 }
56
57 protected void removeValue(Object key) {
58 throw new UnsupportedOperationException();
59 }
60
61 /***
62 * Cookie Enumerator Class
63 */
64 private class CookieEnumerator implements Enumeration {
65
66 private int i = 0;
67
68 private Cookie[] cookieArray;
69
70 public CookieEnumerator(Cookie[] cookies) {
71 this.cookieArray = cookies;
72 }
73
74 public synchronized boolean hasMoreElements() {
75 return cookieArray.length > i;
76 }
77
78 public synchronized Object nextElement() {
79 Object element = cookieArray[i];
80 i++;
81 return element;
82 }
83
84 }
85
86 }