View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    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  }