geirm       01/04/11 05:59:45

  Modified:    whiteboard/geir/listener ASTReference.java
                        ASTSetDirective.java EventCartridge.java
  Removed:     whiteboard/geir/listener velocity-1.0.1-dev-lstn.jar
  Log:
  Update with Jose's suggestions, and removed old jar.
  
  Revision  Changes    Path
  1.3       +3 -13     jakarta-velocity/whiteboard/geir/listener/ASTReference.java
  
  Index: ASTReference.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/whiteboard/geir/listener/ASTReference.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ASTReference.java 2001/04/09 01:03:26     1.2
  +++ ASTReference.java 2001/04/11 12:59:42     1.3
  @@ -82,7 +82,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Christoph Reck</a>
  - * @version $Id: ASTReference.java,v 1.2 2001/04/09 01:03:26 geirm Exp $ 
  + * @version $Id: ASTReference.java,v 1.3 2001/04/11 12:59:42 geirm Exp $ 
   */
   public class ASTReference extends SimpleNode
   {
  @@ -238,12 +238,7 @@
               
               if (ec != null)
               {
  -                NullReferenceEventHandler[] rieh = 
ec.getNullReferenceHandlerArray();
  -                
  -                for(int i = 0; i < rieh.length; i++)
  -                {
  -                    localNullstring = rieh[i].nullReferenceRender( localNullstring 
);
  -                }
  +               localNullstring = ec.nullReferenceRender( localNullstring );
               }
              
               /* 
  @@ -262,13 +257,8 @@
               
               if (ec != null)
               {
  -                ReferenceInsertionEventHandler[] rieh = 
ec.getReferenceInsertionHandlerArray();
  -             
  -                for(int i = 0; i < rieh.length; i++)
  -                {
  -                    val =  rieh[i].referenceInsert( nullString, val );
  -                }
  -            }
  +             val =  ec.referenceInsert( nullString, val );
  +         }
               
               String s = NodeUtils.specialText(getFirstToken()) + prefix + 
val.toString();
               
  
  
  
  1.3       +1 -9      jakarta-velocity/whiteboard/geir/listener/ASTSetDirective.java
  
  Index: ASTSetDirective.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/whiteboard/geir/listener/ASTSetDirective.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ASTSetDirective.java      2001/04/09 01:03:27     1.2
  +++ ASTSetDirective.java      2001/04/11 12:59:42     1.3
  @@ -75,7 +75,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
  - * @version $Id: ASTSetDirective.java,v 1.2 2001/04/09 01:03:27 geirm Exp $
  + * @version $Id: ASTSetDirective.java,v 1.3 2001/04/11 12:59:42 geirm Exp $
    */
   public class ASTSetDirective extends SimpleNode
   {
  @@ -148,15 +148,7 @@
   
                   if (ec != null)
                   {
  -                    NullSetEventHandler[] nseh = ec.getNullSetEventHandlerArray();
  -                    
  -                    for(int i = 0; i < nseh.length; i++)
  -                    {
  -                        if( ! nseh[i].nullSetLogMessage( left.literal() ))
  -                        {
  -                            doit = false;
  -                        }
  -                    }
  +                 doit = ec.nullSetLogMessage( left.literal() );
                   }
   
                   if (doit)
  
  
  
  1.3       +93 -104   jakarta-velocity/whiteboard/geir/listener/EventCartridge.java
  
  Index: EventCartridge.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/whiteboard/geir/listener/EventCartridge.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EventCartridge.java       2001/04/09 01:03:27     1.2
  +++ EventCartridge.java       2001/04/11 12:59:42     1.3
  @@ -63,147 +63,136 @@
    *  'Package' of event handlers...
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
  - * @version $Id: EventCartridge.java,v 1.2 2001/04/09 01:03:27 geirm Exp $
  + * @author <a href="mailto:[EMAIL PROTECTED]">Jose Alberto Fernandez</a>
  + * @version $Id: EventCartridge.java,v 1.3 2001/04/11 12:59:42 geirm Exp $
    */
  -public class EventCartridge
  +public class EventCartridge implements ReferenceInsertionEventHandler,
  +                                     NullSetEventHandler,
  +                                     NullReferenceEventHandler
   {
  -    private ArrayList riehList = null;
  -    private ReferenceInsertionEventHandler[] riehArr = null;
  +    private ReferenceInsertionEventHandler rieh = null;
  +    private NullSetEventHandler nseh = null;
  +    private NullReferenceEventHandler nreh = null;
   
  -    private ArrayList nsehList = null;
  -    private NullSetEventHandler[] nsehArr = null;
  -
  -    private ArrayList nrehList = null;
  -    private NullReferenceEventHandler[] nrehArr = null;
  -
       /**
  -     *  called by client to add an event handler.  For multiple
  -     *  calls with the same type, they stack and are called
  -     *  in sequence when invoked
  +     *  Adds an event handler(s) to the Cartridge.  This method
  +     *  will find all possible event handler interfaces supported
  +     *  by the passed in object.
  +     *
  +     *  @param ev object impementing a valid EventHandler-derived interface
  +     *  @return true if a supported interface, false otherwise or if null
        */
       public boolean addEventHandler( EventHandler ev )
  -        throws Exception
       {
           if (ev == null)
           {
               return false;
           }
   
  -        boolean found = false;
  +     boolean found = false;
   
           if ( ev instanceof ReferenceInsertionEventHandler)
           {
  -            /*
  -             *  if we don't have one, make one
  -             */
  -
  -            if ( riehList == null)
  -            {
  -                riehList = new ArrayList();
  -            }
  -
  -            /*
  -             *  add to end
  -             */
  -
  -            riehList.add( ev );
  - 
  -            /*
  -             *  gen the static typed array
  -             */
  -
  -            Object[] oarr = riehList.toArray();
  -            riehArr = new ReferenceInsertionEventHandler[ oarr.length ];
  -            System.arraycopy( oarr, 0, riehArr, 0, oarr.length);
  -
  -            found = true;
  +            rieh = (ReferenceInsertionEventHandler) ev;
  +         found = true;
           }
           
           if ( ev instanceof NullReferenceEventHandler )
           {
  -            /*
  -             *  if we don't have one, make one
  -             */
  -
  -            if ( nrehList == null)
  -            {
  -                nrehList = new ArrayList();
  -            }
  -
  -            /*
  -             *  add to end
  -             */
  -
  -            nrehList.add( ev );
  -
  -            /*
  -             *  gen the static typed array
  -             */
  -
  -            Object[] oarr = nrehList.toArray();
  -            nrehArr = new NullReferenceEventHandler[ oarr.length ];
  -            System.arraycopy( oarr, 0, nrehArr, 0, oarr.length);
  -
  -            found = true;
  +            nreh = (NullReferenceEventHandler) ev;
  +         found = true;
           }
   
  -
           if ( ev instanceof NullSetEventHandler )
           {
  -            /*
  -             *  if we don't have one, make one
  -             */
  -
  -            if ( nsehList == null)
  -            {
  -                nsehList = new ArrayList();
  -            }
  -
  -            /*
  -             *  add to end
  -             */
  -
  -            nsehList.add( ev );
  -            
  -            /*
  -             *  gen the static typed array
  -             */
  -
  -            Object[] oarr = nsehList.toArray();
  -            nsehArr = new NullSetEventHandler[ oarr.length ];
  -            System.arraycopy( oarr, 0, nsehArr, 0, oarr.length);
  -
  +            nseh = (NullSetEventHandler) ev;
               found = true;
  -        }
  -        
  -        if(!found)
  -        {
  -            /*
  -             *  guess we don't support that kind of event handler
  -             */
  -
  -            throw new Exception("Unsupported handler class : " + ev.getClass());
           }
  -
  -        return true;
  +      
  +        return found;
       }
  -
  -    public ReferenceInsertionEventHandler[] getReferenceInsertionHandlerArray()
  +    
  +    /**
  +     *  Removes an event handler(s) from the Cartridge.  This method
  +     *  will find all possible event handler interfaces supported
  +     *  by the passed in object and remove them.
  +     *
  +     *  @param ev object impementing a valid EventHandler-derived interface
  +     *  @return true if a supported interface, false otherwise or if null
  +     */
  +    public boolean removeEventHandler(EventHandler ev)
       {
  -        return riehArr;
  +     if ( ev == null )
  +     {
  +         return false;
  +     }
  +
  +     boolean found = false;
  +
  +     if (ev == rieh) 
  +     {
  +         rieh = null;
  +         found = true;
  +     }
  +     
  +     if (ev == nseh) 
  +     {
  +         nseh = null;
  +         found = true;
  +     }
  +
  +     if (ev == nreh) 
  +     {
  +         nreh = null;
  +         found = true;
  +     }
  +
  +     return found;
       }
   
  -    public NullReferenceEventHandler[] getNullReferenceHandlerArray()
  +    /**
  +     *  Implementation of ReferenceInsertionEventHandler method
  +     *  <code>referenceInsert()</code>.
  +     *
  +     *  Called during Velocity merge before a reference value will
  +     *  be inserted into the output stream.
  +     *
  +     *  @param reference reference from template about to be inserted
  +     *  @param value  value about to be inserted (after toString() )
  +     *  @return Object on which toString() should be called for output.
  +     */
  +    public Object referenceInsert( String reference, Object value  )
       {
  -        return nrehArr;
  +     if (rieh == null)
  +     {
  +         return value;
  +     }
  +
  +     return rieh.referenceInsert( reference, value );
       }
   
  +
  +    public boolean nullSetLogMessage( String reference )
  +    {
  +     if ( nseh == null)
  +     {
  +         return true;
  +     }
   
  -    public NullSetEventHandler[] getNullSetEventHandlerArray()
  +     return nseh.nullSetLogMessage( reference );
  +    }
  +    
  +    public String nullReferenceRender( String reference )
       {
  -        return nsehArr;
  +     if (nreh == null)
  +     {
  +         return reference;
  +     }
  +
  +     return nreh.nullReferenceRender( reference );
       }
   
  +    
       public boolean attachToContext( Context context )
       {
           
  
  
  

Reply via email to