[jboss-cvs] jboss-seam/src/main/org/jboss/seam/mock ...

Gavin King gavin.king at jboss.com
Sun Feb 4 16:14:50 EST 2007


  User: gavin   
  Date: 07/02/04 16:14:50

  Modified:    src/main/org/jboss/seam/mock  MockExternalContext.java
  Log:
  attribute maps
  
  Revision  Changes    Path
  1.13      +169 -23   jboss-seam/src/main/org/jboss/seam/mock/MockExternalContext.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: MockExternalContext.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/mock/MockExternalContext.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- MockExternalContext.java	4 Feb 2007 20:26:14 -0000	1.12
  +++ MockExternalContext.java	4 Feb 2007 21:14:50 -0000	1.13
  @@ -11,6 +11,8 @@
   import java.net.MalformedURLException;
   import java.net.URL;
   import java.security.Principal;
  +import java.util.AbstractSet;
  +import java.util.Collection;
   import java.util.Collections;
   import java.util.Enumeration;
   import java.util.HashMap;
  @@ -26,10 +28,12 @@
   import javax.servlet.http.HttpServletResponse;
   import javax.servlet.http.HttpSession;
   
  +import org.jboss.seam.util.EnumerationIterator;
  +
   /**
    * @author Gavin King
    * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public class MockExternalContext extends ExternalContext
   {
  @@ -100,14 +104,24 @@
      @Override
      public Map getApplicationMap()
      {
  -      Map result = new HashMap();
  -      Enumeration e = context.getAttributeNames();
  -      while ( e.hasMoreElements() )
  +      return new AttributeMap()
         {
  -         String name = (String) e.nextElement();
  -         result.put( name, context.getAttribute(name) );
  +         @Override
  +         public Enumeration keys()
  +         {
  +            return context.getAttributeNames();
         }
  -      return result;
  +         @Override
  +         public Object getAttribute(String key)
  +         {
  +            return context.getAttribute(key);
  +         }
  +         @Override
  +         public void setAttribute(String key, Object value)
  +         {
  +            context.setAttribute(key, value);
  +         }
  +      };
      }
   
      @Override
  @@ -205,14 +219,24 @@
      @Override
      public Map getRequestMap()
      {
  -      Map result = new HashMap();
  -      Enumeration e = request.getAttributeNames();
  -      while ( e.hasMoreElements() )
  +      return new AttributeMap()
         {
  -         String name = (String) e.nextElement();
  -         result.put( name, request.getAttribute(name) );
  +         @Override
  +         public Enumeration keys()
  +         {
  +            return request.getAttributeNames();
         }
  -      return result;
  +         @Override
  +         public Object getAttribute(String key)
  +         {
  +            return request.getAttribute(key);
  +         }
  +         @Override
  +         public void setAttribute(String key, Object value)
  +         {
  +            request.setAttribute(key, value);
  +         }
  +      };
      }
   
      @Override
  @@ -285,17 +309,139 @@
      @Override
      public Map getSessionMap()
      {
  -      Map result = new HashMap();
  -      HttpSession session = request.getSession(true);
  -      Enumeration e = session.getAttributeNames();
  -      while ( e.hasMoreElements() )
  +      final HttpSession session = request.getSession(true);
  +      return new AttributeMap()
         {
  -         String name = (String) e.nextElement();
  -         result.put( name, session.getAttribute(name) );
  +         @Override
  +         public Enumeration keys()
  +         {
  +            return session.getAttributeNames();
  +         }
  +         @Override
  +         public Object getAttribute(String key)
  +         {
  +            return session.getAttribute(key);
  +         }
  +         @Override
  +         public void setAttribute(String key, Object value)
  +         {
  +            session.setAttribute(key, value);
  +         }
  +      };
         }
  +   
  +   static abstract class AttributeMap implements Map
  +   {
  +      
  +      public abstract Enumeration keys();
  +
  +      public Object get(Object key)
  +      {
  +         return getAttribute((String)key);
  +      }
  +      
  +      public Object put(Object key, Object value)
  +      {
  +         Object result = get(key);
  +         setAttribute((String)key, value);
         return result;
      }
   
  +      public void clear()
  +      {
  +         Enumeration e = keys();
  +         while (e.hasMoreElements())
  +         {
  +            remove( e.nextElement() );
  +         }
  +      }
  +
  +      public boolean containsKey(Object key)
  +      {
  +         Enumeration e = keys();
  +         while (e.hasMoreElements())
  +         {
  +            if( key.equals( e.nextElement() ) ) return true;
  +         }
  +         return false;
  +      }
  +
  +      public boolean containsValue(Object value)
  +      {
  +         Enumeration e = keys();
  +         while (e.hasMoreElements())
  +         {
  +            if ( value.equals( get( e.nextElement() ) ) ) return true;
  +         }
  +         return false;
  +      }
  +
  +      public Set entrySet()
  +      {
  +         throw new UnsupportedOperationException();
  +      }
  +
  +      public abstract Object getAttribute(String key);
  +      
  +      public boolean isEmpty()
  +      {
  +         return size()==0;
  +      }
  +
  +      public Set keySet()
  +      {
  +         return new AbstractSet()
  +         {
  +
  +            @Override
  +            public Iterator iterator()
  +            {
  +               return new EnumerationIterator( keys() );
  +            }
  +
  +            @Override
  +            public int size()
  +            {
  +               return AttributeMap.this.size();
  +            }
  +            
  +         };
  +      }
  +
  +      public abstract void setAttribute(String key, Object value);
  +
  +      public void putAll(Map t)
  +      {
  +         for (Map.Entry me: (Set<Map.Entry>) t.entrySet())
  +         {
  +            put( me.getKey(), me.getValue() );
  +         }
  +      }
  +
  +      public Object remove(Object key)
  +      {
  +         return put(key, null);
  +      }
  +
  +      public int size()
  +      {
  +         int i=0;
  +         Enumeration e = keys();
  +         while (e.hasMoreElements())
  +         {
  +            e.nextElement();
  +            i++;
  +         }
  +         return i;
  +       }
  +
  +      public Collection values()
  +      {
  +         throw new UnsupportedOperationException();
  +      }
  +      
  +   };
  +
      @Override
      public Principal getUserPrincipal()
      {
  
  
  



More information about the jboss-cvs-commits mailing list