jvanzyl     00/11/01 11:32:15

  Modified:    src/java/org/apache/velocity/runtime/directive Foreach.java
  Log:
  - i mistakenly took out support for Maps in foreach. i put
    it back thanks to Dave! :-)
  
  Revision  Changes    Path
  1.15      +9 -0      
jakarta-velocity/src/java/org/apache/velocity/runtime/directive/Foreach.java
  
  Index: Foreach.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/directive/Foreach.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- Foreach.java      2000/10/31 23:44:54     1.14
  +++ Foreach.java      2000/11/01 19:32:14     1.15
  @@ -62,6 +62,7 @@
   import java.util.Collection;
   import java.util.Enumeration;
   import java.util.Iterator;
  +import java.util.Map;
   import java.util.Vector;
   
   import org.apache.velocity.Context;
  @@ -81,6 +82,7 @@
   {
       private final static int ARRAY = 1;
       private final static int ITERATOR = 2;
  +    private final static int MAP = 3;
       
       private final static String COUNTER_IDENTIFIER =
           Runtime.getString(Runtime.COUNTER_NAME);
  @@ -144,6 +146,11 @@
               node.setInfo(ITERATOR);
               sampleElement = ((Collection) listObject).iterator().next();
           }
  +        else if (implementsMethod(listObject, "values"))
  +        {
  +            node.setInfo(MAP);
  +            sampleElement = ((Map) listObject).values().iterator().next();
  +        }
           else
           {
               // If it's not an array or an object that provides
  @@ -175,6 +182,8 @@
   
           if (node.getInfo() == ARRAY)
               i = new ArrayIterator((Object[]) listObject);
  +        else if (node.getInfo() == MAP)
  +            i = ((Map) listObject).values().iterator();
           else            
               i = ((Collection) listObject).iterator();
           
  
  
  

Reply via email to