I agree with all of your comments. I chose to use ArrayList as the parameter for addElementEventHandlers() to keep it consistent with getElementEventHandlers(), but you're right in that it should be an interface not a concrete class. As for the Javadocs, well lets just say they could all use a little work :).
My intention was to get the JCS working first, then look at where things need cleaning up. Cheers, Mike -----Original Message----- From: Daniel Rall [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 21, 2004 8:23 PM To: Mike Pettypiece Cc: Turbine JCS Developers List Subject: Re: [PATCH] ElementAttributes.copy() Mike Pettypiece wrote: > Hello All, > > I was attempting to create an implementation of IElementEventHandler > and I noticed that events are currently not being sent properly. I > tracked down the problem to the copy() method of ElementAttributes > where the event handlers are not being copied. > > Here is a patch which should fix the problem. Would someone with CVS > commit privileges please look this over? Comments inline. > Index: src/java/org/apache/jcs/engine/ElementAttributes.java > =================================================================== > RCS file: > /home/cvspublic/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/Ele > me > ntAttributes.java,v > retrieving revision 1.5 > diff -u -r1.5 ElementAttributes.java > --- src/java/org/apache/jcs/engine/ElementAttributes.java 15 Apr 2004 > 19:22:49 -0000 1.5 > +++ src/java/org/apache/jcs/engine/ElementAttributes.java 20 Apr 2004 > 20:32:02 -0000 > @@ -23,12 +23,11 @@ > import java.io.ObjectInputStream; > import java.io.ObjectOutputStream; > import java.io.Serializable; > - > import java.util.ArrayList; > - > -import > org.apache.jcs.engine.control.event.behavior.IElementEventHandler; > +import java.util.Iterator; > > import org.apache.jcs.engine.behavior.IElementAttributes; > +import > org.apache.jcs.engine.control.event.behavior.IElementEventHandler; > > /** > * Element attribute descriptor class. > @@ -163,6 +162,7 @@ > attr.setIsRemote( this.getIsRemote() ); > attr.setIsSpool( this.getIsSpool() ); > attr.setMaxLifeSeconds( this.getMaxLifeSeconds() ); > + attr.addElementEventHandlers( this.eventHandlers ); > return attr; > } > catch ( Exception e ) > @@ -230,6 +230,7 @@ > this.mls = mls; > } > > + > /** > * Gets the {3} attribute of the ElementAttributes object > * > @@ -473,6 +474,26 @@ > } > > /** > + * Sets the eventHandlers of the IElementAttributes object > + * > + [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> eventHandlers The new {3} value The above JavaDoc wasn't right from where you copied it, and isn't right here either. ;-) > + */ > + public void addElementEventHandlers( ArrayList eventHandlers ) The parameter's data type should be a Collection, or List if sequence is important. > + { > + if ( eventHandlers == null ) > + { > + return; > + } > + > + for ( Iterator iter = eventHandlers.iterator(); > + iter.hasNext(); > ) > + { > + addElementEventHandler( (IElementEventHandler)iter.next() > ); > + } > + } > + > + > + > + /** > * Gets the elementEventHandlers. Returns null if none exist. > Makes > * checking easy. > * > @@ -483,8 +504,7 @@ > { > return this.eventHandlers; > } > - > - > + > /** > * For logging and debugging the element IElementAttributes. > * > Index: src/java/org/apache/jcs/engine/behavior/IElementAttributes.java > =================================================================== > RCS file: > /home/cvspublic/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/beh > av > ior/IElementAttributes.java,v > retrieving revision 1.5 > diff -u -r1.5 IElementAttributes.java > --- src/java/org/apache/jcs/engine/behavior/IElementAttributes.java 15 > Apr 2004 19:22:53 -0000 1.5 > +++ src/java/org/apache/jcs/engine/behavior/IElementAttributes.java 20 > Apr 2004 20:32:02 -0000 > @@ -209,6 +209,13 @@ > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> eventHandler The feature to be > added > to the ElementEventHandler > */ > public void addElementEventHandler( IElementEventHandler > eventHandler ); > + > + /** > + * Sets the eventHandlers of the IElementAttributes object > + * > + [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> eventHandlers The new {3} value Bad JavaDoc. > + */ > + public void addElementEventHandlers( ArrayList eventHandlers ); Same interface comment applies. > > /** > * Gets the elementEventHandlers. > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
