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

Gavin King gavin.king at jboss.com
Tue Jul 25 00:40:43 EDT 2006


  User: gavin   
  Date: 06/07/25 00:40:43

  Modified:    src/main/org/jboss/seam/core    Manager.java Redirect.java
                        RenderParameters.java
  Log:
  improvements to parameter handling and EL configuration
  
  Revision  Changes    Path
  1.81      +24 -7     jboss-seam/src/main/org/jboss/seam/core/Manager.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Manager.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Manager.java,v
  retrieving revision 1.80
  retrieving revision 1.81
  diff -u -b -r1.80 -r1.81
  --- Manager.java	12 Jul 2006 23:02:32 -0000	1.80
  +++ Manager.java	25 Jul 2006 04:40:43 -0000	1.81
  @@ -44,7 +44,7 @@
    *
    * @author Gavin King
    * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  - * @version $Revision: 1.80 $
  + * @version $Revision: 1.81 $
    */
   @Scope(ScopeType.EVENT)
   @Name("org.jboss.seam.core.manager")
  @@ -863,10 +863,25 @@
         StringBuilder builder = new StringBuilder(url);
         for ( Map.Entry<String, Object> param: parameters.entrySet() )
         {
  +         Object parameterValue = param.getValue();
  +         String parameterName = param.getKey();
  +         if (parameterValue instanceof Iterable)
  +         {
  +            for ( Object value: (Iterable) parameterValue )
  +            {
            builder.append('&')
  -               .append( param.getKey() )
  +                  .append(parameterName)
                  .append('=')
  -               .append( param.getValue() );
  +                  .append(value);
  +            }
  +         }
  +         else
  +         {
  +            builder.append('&')
  +                  .append(parameterName)
  +                  .append('=')
  +                  .append(parameterValue);
  +         }
         }
         if ( url.indexOf('?')<0 ) 
         {
  @@ -983,11 +998,13 @@
         }
      }
   
  +   @Deprecated
      public boolean isNonFacesRequest()
      {
         return nonFacesRequest;
      }
   
  +   @Deprecated
      public void setNonFacesRequest(boolean nonFacesRequest)
      {
         this.nonFacesRequest = nonFacesRequest;
  
  
  
  1.5       +3 -1      jboss-seam/src/main/org/jboss/seam/core/Redirect.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Redirect.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Redirect.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- Redirect.java	12 Jul 2006 19:59:58 -0000	1.4
  +++ Redirect.java	25 Jul 2006 04:40:43 -0000	1.5
  @@ -56,7 +56,9 @@
      }
      
      /**
  -    * Set a request parameter value
  +    * Set a request parameter value (to set a multi-valued
  +    * request parameter, pass an array or collection as
  +    * the value)
       */
      public void setParameter(String name, Object value)
      {
  
  
  
  1.2       +34 -7     jboss-seam/src/main/org/jboss/seam/core/RenderParameters.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: RenderParameters.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/RenderParameters.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- RenderParameters.java	28 Jun 2006 18:35:21 -0000	1.1
  +++ RenderParameters.java	25 Jul 2006 04:40:43 -0000	1.2
  @@ -1,7 +1,9 @@
   package org.jboss.seam.core;
   
  +import java.util.AbstractMap;
   import java.util.HashMap;
   import java.util.Map;
  +import java.util.Set;
   
   import javax.faces.context.FacesContext;
   
  @@ -20,14 +22,39 @@
      @Unwrap
      public Map<String, Object> getParameters()
      {
  -      if ( Manager.instance().isNonFacesRequest() )
  +      return new AbstractMap<String, Object>()
         {
  -         return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
  +         
  +         private Map requestParameters = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
  +
  +         @Override
  +         public Set<Entry<String, Object>> entrySet()
  +         {
  +            return parameters.entrySet();
  +         }
  +
  +         @Override
  +         public Object get(Object key)
  +         {
  +            if ( parameters.containsKey(key) )
  +            {
  +               return parameters.get(key);
         }
         else
         {
  -         return parameters;
  +               return requestParameters.get(key);
  +            }
  +         }
  +
  +         @Override
  +         public Object put(String key, Object value)
  +         {
  +            Object old = get(key);
  +            parameters.put(key, value);
  +            return old;
         }
  +         
  +      };
      }
      
      public static Map<String, Object> instance()
  
  
  



More information about the jboss-cvs-commits mailing list