rdonkin     2003/01/12 05:52:03

  Modified:    betwixt/src/java/org/apache/commons/betwixt
                        ElementDescriptor.java NodeDescriptor.java
               betwixt/src/java/org/apache/commons/betwixt/expression
                        Context.java MethodExpression.java
                        MethodUpdater.java
  Log:
  Improved java docs.
  
  Revision  Changes    Path
  1.6       +122 -27   
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java
  
  Index: ElementDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/ElementDescriptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ElementDescriptor.java    6 Jan 2003 22:50:44 -0000       1.5
  +++ ElementDescriptor.java    12 Jan 2003 13:52:03 -0000      1.6
  @@ -114,56 +114,91 @@
        */
       private boolean wrapCollectionsInElement = true;
       
  -    /** Base constructor */
  +    /**  
  +     * Constructs an <code>ElementDescriptor</code> that refers to a primitive type.
  +     */
       public ElementDescriptor() {
       }
  -
  +    
  +    /**
  +     * Base constructor.
  +     * @param primitiveType if true, this element refers to a primitive type
  +     */
       public ElementDescriptor(boolean primitiveType) {
           this.primitiveType = primitiveType;
       }
   
  -    /** Creates a <code>ElementDescriptor</code> with no namespace URI or prefix */
  +    /** 
  +     * Creates a ElementDescriptor with no namespace URI or prefix.
  +     *
  +     * @param localName the (xml) local name of this node. 
  +     * This will be used to set both qualified and local name for this name.
  +     */
       public ElementDescriptor(String localName) {
           super( localName );
       }
   
  -    public String toString() {
  -        return 
  -            "ElementDescriptor[qname=" + getQualifiedName() + ",pname=" + 
getPropertyName() 
  -            + ",class=" + getPropertyType() + ",singular=" + 
getSingularPropertyType()
  -            + ",updater=" + getUpdater() + "]";
  -    }
  +
       
  -    /** Creates a <code>ElementDescriptor</code> with namespace URI and qualified 
name */
  +    /** 
  +     * Creates a <code>ElementDescriptor</code> with namespace URI and qualified 
name
  +     * @param localName the (xml) local name of this  node
  +     * @param qualifiedName the (xml) qualified name of this node
  +     * @param uri the (xml) namespace prefix of this node
  +     */
       public ElementDescriptor(String localName, String qualifiedName, String uri) {
           super(localName, qualifiedName, uri);
       }
   
  -    /** Returns true if this element has child elements */
  +    /** 
  +     * Returns true if this element has child <code>ElementDescriptors</code>
  +     * @return true if this element has child elements 
  +     * @see #getElementDescriptors
  +     */
       public boolean hasChildren() {
           return elementDescriptors != null && elementDescriptors.length > 0;
       }
       
  -    /** Returns true if this element has attributes */
  +    /** 
  +     * Returns true if this element has <code>AttributeDescriptors</code>
  +     * @return true if this element has attributes
  +     * @see #getAttributeDescriptors
  +     */
       public boolean hasAttributes() {
           return attributeDescriptors != null && attributeDescriptors.length > 0;
       }
       
  -    /** Specifies if this is a collection element
  -     * Normally only used with the WrapCollectionsInElement setting
  -     * @param isCollection
  +    /** 
  +     * Sets whether <code>Collection</code> bean properties should wrap items in a 
parent element.
  +     * In other words, should the mapping for bean properties which are 
<code>Collection</code>s 
  +     * enclosed the item elements within a parent element.
  +     * Normally only used when this describes a collection bean property.
  +     *
  +     * @param wrapCollectionsInElement true if the elements for the items in the 
collection 
  +     * should be contained in a parent element
        */
       public void setWrapCollectionsInElement(boolean wrapCollectionsInElement) {
           this.wrapCollectionsInElement = wrapCollectionsInElement;
       }
   
       /**
  -     * Returns if this element is a collection element
  +     * Returns true if collective bean properties should wrap the items in a parent 
element.
  +     * In other words, should the mapping for bean properties which are 
<code>Collection</code>s 
  +     * enclosed the item elements within a parent element.
  +     * Normally only used when this describes a collection bean property.
  +     *
  +     * @return true if the elements for the items in the collection should be 
contained 
  +     * in a parent element
        */
       public boolean isWrapCollectionsInElement() {
           return this.wrapCollectionsInElement;
       }
   
  +    /**
  +     * Adds an attribute to the element this <code>ElementDescriptor</code> 
describes
  +     * @param descriptor the <code>AttributeDescriptor</code> that will be added to 
the 
  +     * attributes associated with element this <code>ElementDescriptor</code> 
describes
  +     */
       public void addAttributeDescriptor(AttributeDescriptor descriptor) {
           if ( attributeList == null ) {
               attributeList = new ArrayList();
  @@ -173,7 +208,12 @@
       }
       
       
  -    /** Returns the attribute descriptors for this element */
  +    /** 
  +     * Returns the attribute descriptors for this element 
  +     *
  +     * @return descriptors for the attributes of the element that this 
  +     * <code>ElementDescriptor</code> describes
  +     */
       public AttributeDescriptor[] getAttributeDescriptors() {
           if ( attributeDescriptors == null ) {
               if ( attributeList == null ) {
  @@ -189,12 +229,24 @@
           return attributeDescriptors;
       }
       
  -    /** Set <code>AttributesDescriptors</code> for this element */
  +    /** 
  +     * Sets the <code>AttributesDescriptors</code> for this element.
  +     * This sets descriptors for the attributes of the element describe by the 
  +     * <code>ElementDescriptor</code>.
  +     *
  +     * @param attributeDescriptors the <code>AttributeDescriptor</code> describe 
the attributes
  +     * of the element described by this <code>ElementDescriptor</code>
  +     */
       public void setAttributeDescriptors(AttributeDescriptor[] attributeDescriptors) 
{
           this.attributeDescriptors = attributeDescriptors;
           this.attributeList = null;
       }
       
  +    /**
  +     * Adds a descriptor for a child element.
  +     * 
  +     * @param descriptor the <code>ElementDescriptor</code> describing the child 
element to add
  +     */
       public void addElementDescriptor(ElementDescriptor descriptor) {
           if ( elementList == null ) {
               elementList = new ArrayList();
  @@ -203,7 +255,11 @@
           elementDescriptors = null;
       }
       
  -    /** Returns the child element descriptors for this element */
  +    /** 
  +     * Returns descriptors for the child elements of the element this describes.
  +     * @return the <code>ElementDescriptor</code> describing the child elements
  +     * of the element that this <code>ElementDescriptor</code> describes
  +     */
       public ElementDescriptor[] getElementDescriptors() {
           if ( elementDescriptors == null ) {
               if ( elementList == null ) {
  @@ -219,28 +275,44 @@
           return elementDescriptors;
       }
   
  -    /** Set descriptors for child element of this element */
  +    /** 
  +     * Sets the descriptors for the child element of the element this describes. 
  +     * @param elementDescriptors the <code>ElementDescriptor</code>s of the element 
  +     * that this describes
  +     */
       public void setElementDescriptors(ElementDescriptor[] elementDescriptors) {
           this.elementDescriptors = elementDescriptors;
           this.elementList = null;
       }
       
  -    /** Returns the expression used to evaluate the new context of this element */
  +    /** 
  +     * Returns the expression used to evaluate the new context of this element.
  +     * @return the expression used to evaluate the new context of this element
  +     */
       public Expression getContextExpression() {
           return contextExpression;
       }
       
  -    /** Sets the expression used to evaluate the new context of this element */
  +    /** 
  +     * Sets the expression used to evaluate the new context of this element 
  +     * @param contextExpression the expression used to evaluate the new context of 
this element 
  +     */
       public void setContextExpression(Expression contextExpression) {
           this.contextExpression = contextExpression;
       }
       
  -    /** @return whether this element refers to a primitive type (or property of a 
parent object) */
  +    /** 
  +     * Returns true if this element refers to a primitive type property
  +     * @return whether this element refers to a primitive type (or property of a 
parent object) 
  +     */
       public boolean isPrimitiveType() {
           return primitiveType;
       }
       
  -    /** Sets whether this element refers to a primitive type (or property of a 
parent object) */
  +    /** 
  +     * Sets whether this element refers to a primitive type (or property of a 
parent object) 
  +     * @param primitiveType true if this element refers to a primitive type
  +     */
       public void setPrimitiveType(boolean primitiveType) {
           this.primitiveType = primitiveType;
       }
  @@ -249,9 +321,13 @@
       //-------------------------------------------------------------------------    
           
       /** 
  -     * Lazily creates the mutable List, nullifiying the array so that
  +     * Lazily creates the mutable List.
  +     * This nullifies {@link #attributeDescriptors} so that
        * as items are added to the list the Array is ignored until it is
  -     * explicitly asked for
  +     * explicitly asked for.
  +     * 
  +     * @return list of <code>AttributeDescriptors</code>'s describing the attributes
  +     * of the element that this <code>ElementDescriptor</code> describes
        */
       protected List getAttributeList() {
           if ( attributeList == null ) {
  @@ -270,7 +346,15 @@
           return attributeList;
       }
       
  -    /** Lazily creates the mutable List */
  +    /**  
  +     * Lazily creates the mutable List of child elements.
  +     * This nullifies {@link #elementDescriptors} so that
  +     * as items are added to the list the Array is ignored until it is
  +     * explicitly asked for.
  +     *
  +     * @return list of <code>ElementDescriptor</code>'s describe the child elements 
of 
  +     * the element that this <code>ElementDescriptor</code> describes
  +     */
       protected List getElementList() {
           if ( elementList == null ) {
               if ( elementDescriptors != null ) {
  @@ -288,4 +372,15 @@
           return elementList;
       }
       
  +    /**
  +     * Returns something useful for logging.
  +     *
  +     * @return a string useful for logging
  +     */ 
  +    public String toString() {
  +        return 
  +            "ElementDescriptor[qname=" + getQualifiedName() + ",pname=" + 
getPropertyName() 
  +            + ",class=" + getPropertyType() + ",singular=" + 
getSingularPropertyType()
  +            + ",updater=" + getUpdater() + "]";
  +    }    
   }
  
  
  
  1.4       +71 -26    
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/NodeDescriptor.java
  
  Index: NodeDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/NodeDescriptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NodeDescriptor.java       8 Jan 2003 22:07:21 -0000       1.3
  +++ NodeDescriptor.java       12 Jan 2003 13:52:03 -0000      1.4
  @@ -77,6 +77,7 @@
   
       /** The local name of this node without any namespace prefix */
       private String localName;
  +    /** The qualified name of the xml node associated with this descriptor. */
       private String qualifiedName;
       /** The namespace URI of this node */
       private String uri = "";
  @@ -96,34 +97,50 @@
       public NodeDescriptor() {
       }
   
  -    /** Creates a NodeDescriptor with no namespace URI or prefix */
  +    /** 
  +     * Creates a NodeDescriptor with no namespace URI or prefix.
  +     *
  +     * @param localName the (xml) local name of this node. 
  +     * This will be used to set both qualified and local name for this name.
  +     */
       public NodeDescriptor(String localName) {
           this.localName = localName;
           this.qualifiedName = localName;
       }
   
   
  -    /** Creates a NodeDescriptor with namespace URI and qualified name */
  +    /**  
  +     * Creates a NodeDescriptor with namespace URI and qualified name 
  +     * @param localName the (xml) local name of this  node
  +     * @param qualifiedName the (xml) qualified name of this node
  +     * @param uri the (xml) namespace prefix of this node
  +     */
       public NodeDescriptor(String localName, String qualifiedName, String uri) {
           this.localName = localName;
           this.qualifiedName = qualifiedName;
           this.uri = uri;
       }
   
  -    /** Returns the local name, excluding any namespace prefix 
  -      */
  +    /** 
  +     * Gets the local name, excluding any namespace prefix 
  +     * @return the (xml) local name of this node
  +     */
       public String getLocalName() {
           return localName;
       }
   
  -    /** Sets the local name 
  -      */
  +    /** 
  +     * Sets the local name 
  +     * @param localName the (xml) local name of this node
  +     */
       public void setLocalName(String localName) {
           this.localName = localName;
       }    
       
  -    /** Returns the qualified name, including any namespace prefix 
  -      */
  +    /** 
  +     * Gets the qualified name, including any namespace prefix 
  +     * @return the (xml) qualified name of this node. This may be null.
  +     */
       public String getQualifiedName() {
           if ( qualifiedName == null ) {
               qualifiedName = localName;
  @@ -131,14 +148,17 @@
           return qualifiedName;
       }
       
  -    /** Sets the qualified name
  -      */
  +    /** 
  +     * Sets the qualified name
  +     * @param qualifiedName the new (xml) qualified name for this node
  +     */
       public void setQualifiedName(String qualifiedName) {
           this.qualifiedName = qualifiedName;
       }    
       
       /**  
  -     * Returns the namespace URI that this node belongs to 
  +     * Gets the (xml) namespace URI prefix for this node.
  +     * @return the namespace URI that this node belongs to 
        * or "" if there is no namespace defined 
        */
       public String getURI() {
  @@ -146,7 +166,9 @@
       }
       
   
  -    /** Sets the namespace URI that this node belongs to.
  +    /** 
  +     * Sets the namespace URI that this node belongs to.
  +     * @param uri the new namespace uri for this node
        */
       public void setURI(String uri) {
           if ( uri == null ) {
  @@ -158,39 +180,62 @@
           this.uri = uri;
       }
       
  -    /** Returns the expression used to evaluate the text value of this node */
  +    /** 
  +     * Gets the expression used to evaluate the text value of this node 
  +     * for a particular <code>Context</code>.
  +     * @return the expression used to evaluate the text value of this node 
  +     */
       public Expression getTextExpression() {
           return textExpression;
       }
       
  -    /** Sets the expression used to evaluate the text value of this node */
  +    /** 
  +     * Sets the expression used to evaluate the text value of this node
  +     * for a particular <code>Context</code>
  +     * @param textExpression the Expression to be used to evaluate the value of 
this node
  +     */
       public void setTextExpression(Expression textExpression) {
           this.textExpression = textExpression;
       }
       
  -    /** the updater used to update the current bean from the text value of this 
node */
  +    /** 
  +     * Gets the <code>Updater</code> used to update a <code>Context</code> from the 
text value
  +     * corresponding to this node in an xml document
  +     * @return the Update that should be used to update the value of this node
  +     */
       public Updater getUpdater() {
           return updater;
       }
       
  -    /** sets the updater used to update the current bean from the text value of 
this node */
  +    /**
  +     * Sets the <code>Updater</code> used to update a <code>Context</code> from the 
text value
  +     * corresponding to this node in an xml document
  +     * @param updater the Updater to be used to update the values of this node
  +     */
       public void setUpdater(Updater updater) {
           this.updater = updater;
       }
       
  -    /** @return the property type associated with this node, if any */
  +    /** 
  +     * Gets the type of the bean property associated with this node, if any
  +     * @return the property type associated with this node, if any 
  +     */
       public Class getPropertyType() {
           return propertyType;
       }
       
  -    /** Sets the property type associated with this node, if any */
  +    /** 
  +     * Sets the type of the bean property associated with this node, if any 
  +     * @param propertyType the Class of the bean property
  +     */
       public void setPropertyType(Class propertyType) {
           this.propertyType = propertyType;
       }
   
       
       /** 
  -     * @return the property expression to which this node refers to, 
  +     * 
  +     * @return the name of the bean property to which this node refers to, 
        * or null if it is just a constant 
        */
       public String getPropertyName() {
  @@ -198,16 +243,16 @@
       }
       
       /** 
  -     * Sets the property expression to which this node refers to, 
  -     * or null if it is just a constant 
  +     * Sets the name of the bean property to which this node refers to,
  +     * @param propertyName the name of the bean property. 
  +     * Or null, if this node is not mapped to to a bean property
        */
       public void setPropertyName(String propertyName) {
           this.propertyName = propertyName;
       }
       
       /** 
  -     * Gets the singular property type.
  -     * That is, the type ignoring the Collection or Array.
  +     * Gets the underlying type ignoring any wrapping a Collection or Array.
        *
        * @return if this property is a 1-N relationship then this returns the type
        * of a single property value.
  @@ -220,10 +265,10 @@
       }
       
       /** 
  -     * Sets the singular property type.
  -     * That is, the type ignoring the Collection or Array.
  +     * Sets the underlying type ignoring any wrapping Collection or Array.
        *
  -     * @param singularPropertyType 
  +     * @param singularPropertyType the Class of the items in the Collection or 
Array. 
  +     * If node is associated with a collective bean property, then this should not 
be null.
        */
       public void setSingularPropertyType(Class singularPropertyType) {
           this.singularPropertyType = singularPropertyType;
  
  
  
  1.4       +32 -11    
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/Context.java
  
  Index: Context.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/Context.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Context.java      11 Jan 2003 10:38:55 -0000      1.3
  +++ Context.java      12 Jan 2003 13:52:03 -0000      1.4
  @@ -130,54 +130,75 @@
       /** Returns a new child context with the given bean but the same log and 
variables. 
        *
        * @param newBean create a child context for this bean
  +     * @return new Context with new bean but shared variables 
        */
       public Context newContext(Object newBean) {
           return new Context(newBean, variables, log);
       }
       
  -    /** Returns the current bean.
  -      */
  +    /** 
  +     * Gets the current bean.
  +     * @return the bean against which expressions are evaluated
  +     */
       public Object getBean() {
           return bean;
       }
   
  -    /** Set the current bean.
  +    /** 
  +     * Set the current bean.
  +     * @param bean the Object against which expressions will be evaluated
        */
       public void setBean(Object bean) {
           this.bean = bean;
       }    
       
  -    /** Get context variables.
  -     */
  +    /** 
  +      * Gets context variables.
  +      * @return map containing variable values keyed by variable name
  +      */
       public Map getVariables() {
           return variables;
       }
   
  -    /** Set context variables. 
  +    /** 
  +     * Sets context variables. 
  +     * @param variables map containing variable values indexed by varibable name 
Strings
        */
       public void setVariables(Map variables) {
           this.variables = variables;
       }    
   
  -    /** Get the value of a particular context variable.
  +    /** 
  +     * Gets the value of a particular context variable.
  +     * @param name the name of the variable whose value is to be returned
  +     * @return the variable value or null if the variable isn't set
        */
       public Object getVariable(String name) {
           return variables.get( name );
       }
   
  -    /** Set the value of a particular context variable.
  +    /** 
  +     * Sets the value of a particular context variable.
  +     * @param name the name of the variable
  +     * @param value the value of the variable
        */    
       public void setVariable(String name, Object value) {
           variables.put( name, value );
       }
       
  -    /** Get the current log.  
  -      */
  +    /** 
  +     * Gets the current log.  
  +     *
  +     * @return the implementation to which this class logs
  +     */
       public Log getLog() {
           return log;
       }
   
  -    /** Set the logger used to log (Doh!).
  +    /** 
  +     * Set the log implementation to which this class logs
  +     * 
  +     * @param log the implemetation that this class should log to
        */
       public void setLog(Log log) {
           this.log = log;
  
  
  
  1.4       +58 -13    
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/MethodExpression.java
  
  Index: MethodExpression.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/MethodExpression.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MethodExpression.java     6 Jan 2003 22:50:44 -0000       1.3
  +++ MethodExpression.java     12 Jan 2003 13:52:03 -0000      1.4
  @@ -82,12 +82,23 @@
       public MethodExpression() {
       }
       
  -    /** Convenience constructor sets method property */
  +    /**  
  +     * Convenience constructor sets method property 
  +     * @param method the Method whose return value when invoked on the bean 
  +     * will the value of this expression
  +     */
       public MethodExpression(Method method) {
           this.method = method;
       }
   
  -    /** Evaluate by calling the read method on the current bean */
  +    /** 
  +     * Evaluate by calling the read method on the current bean 
  +     *
  +     * @param context the context against which this expression will be evaluated
  +     * @return the value returned by the method when it's invoked on the context's 
bean,
  +     * so long as the method can be invoked.
  +     * Otherwise, null.
  +     */
       public Object evaluate(Context context) {
           Object bean = context.getBean();
           if ( bean != null ) {
  @@ -113,16 +124,28 @@
           return null;
       }
   
  +    /** 
  +     * Do nothing.
  +     * @see org.apache.commons.betwixt.expression.Expression
  +     */
       public void update(Context context, String newValue) {
           // do nothing
       }
   
  -    /** Gets the constant value of this expression */
  +    /** 
  +     * Gets the method used to evaluate this expression.
  +     * @return the method whose value (when invoked against the context's bean) 
will be used 
  +     * to evaluate this expression.
  +     */
       public Method getMethod() {
           return method;
       }
       
  -    /** Sets the constant value of this expression */
  +    /** 
  +     * Sets the method used to evaluate this expression 
  +     * @param method method whose value (when invoked against the context's bean) 
will be used 
  +     * to evaluate this expression 
  +     */
       public void setMethod(Method method) {
           this.method = method;
       }
  @@ -130,7 +153,10 @@
       // Implementation methods
       //-------------------------------------------------------------------------    
       
  -    /** Allows derived objects to create arguments for the method call */
  +    /** 
  +     * Allows derived objects to create arguments for the method call 
  +     * @return {@link #NULL_ARGUMENTS}
  +     */
       protected Object[] getArguments() {
           return NULL_ARGUMENTS;
       }
  @@ -138,20 +164,32 @@
       /** Tries to find an alternate method for the given type using interfaces
         * which gets around the problem of inner classes, 
         * such as on Map.Entry implementations.
  +      *
  +      * @param type the Class whose methods are to be searched
  +      * @param method the Method for which an alternative is to be search for
  +      * @return the alternative Method, if one can be found. Otherwise null.
         */
       protected Method findAlternateMethod( 
                                               Class type, 
  -                                            Method method ) 
  -                                                throws 
  -                                                    NoSuchMethodException {
  +                                            Method method ) {
  +        // XXX
  +        // Would it be better to use the standard reflection code in eg. lang
  +        // since this code contains workarounds for common JVM bugs?
  +        //
           Class[] interfaces = type.getInterfaces();
           if ( interfaces != null ) {
               String name = method.getName();
               for ( int i = 0, size = interfaces.length; i < size; i++ ) {
                   Class otherType = interfaces[i];
  -                Method alternate = otherType.getMethod( name, NULL_CLASSES );
  -                if ( alternate != null && alternate != method ) {
  -                    return alternate;
  +                //
  +                // catch NoSuchMethodException so that all interfaces will be tried
  +                try {
  +                    Method alternate = otherType.getMethod( name, NULL_CLASSES );
  +                    if ( alternate != null && alternate != method ) {
  +                        return alternate;
  +                    }
  +                } catch (NoSuchMethodException e) {
  +                    // swallow
                   }
               }
           }
  @@ -159,15 +197,22 @@
       }
       
       /** 
  -      * <p> Log error to context's logger. </p> 
  +      * <p>Log error to context's logger.</p> 
         *
  -      * <p> Allows derived objects to handle exceptions differently. </p>
  +      * <p>Allows derived objects to handle exceptions differently.</p>
  +      *
  +      * @param context the Context being evaluated when the exception occured
  +      * @param e the exception to handle
         */
       protected void handleException(Context context, Exception e) {
           // use the context's logger to log the problem
           context.getLog().error("[MethodExpression] Cannot evaluate expression", e);
       }
       
  +    /** 
  +     * Returns something useful for logging.
  +     * @return something useful for logging
  +     */
       public String toString() {
           return "MethodExpression [method=" + method + "]";
       }
  
  
  
  1.7       +28 -5     
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/MethodUpdater.java
  
  Index: MethodUpdater.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/expression/MethodUpdater.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MethodUpdater.java        6 Jan 2003 22:50:44 -0000       1.6
  +++ MethodUpdater.java        12 Jan 2003 13:52:03 -0000      1.7
  @@ -79,7 +79,10 @@
       /** Logger */
       private static Log log = LogFactory.getLog( MethodUpdater.class );
   
  -    /** Programmatically set log */
  +    /** 
  +     * Programmatically set log 
  +     * @param aLog the implementation to which this class should log
  +     */
       public static void setLog( Log aLog ) {
           log = aLog;
       }
  @@ -93,12 +96,19 @@
       public MethodUpdater() {
       }
       
  -    /** Convenience constructor sets method property */
  +    /** 
  +     * Convenience constructor sets method property 
  +     * @param method the Method to be invoked on the context's bean in the update
  +     */
       public MethodUpdater(Method method) {
           setMethod( method );
       }
   
  -    /** Updates the current bean context with the given String value */
  +    /** 
  +     * Updates the current bean context with the given String value 
  +     * @param context the Context to be updated
  +     * @param newValue the update to this new value 
  +     */
       public void update(Context context, Object newValue) {
           Object bean = context.getBean();
           if ( bean != null ) {
  @@ -142,12 +152,19 @@
           }
       }
   
  -    /** Gets the constant value of this expression */
  +    /** 
  +     * Gets the method which will be invoked by the update
  +     *
  +     * @return the Method to be invoked by the update
  +     */
       public Method getMethod() {
           return method;
       }
       
  -    /** Sets the constant value of this expression */
  +    /** 
  +     * Sets the constant value of this expression 
  +     * @param method the Method to be invoked by the update
  +     */
       public void setMethod(Method method) {
           this.method = method;
           Class[] types = method.getParameterTypes();
  @@ -162,11 +179,17 @@
       
       /** 
        * Strategy method to allow derivations to handle exceptions differently.
  +     * @param context the Context being updated when this exception occured
  +     * @param e the Exception that occured during the update
        */
       protected void handleException(Context context, Exception e) {
           log.info( "Caught exception: " + e, e );
       }
       
  +    /**
  +     * Returns something useful for logging.
  +     * @return something useful for logging
  +     */
       public String toString() {
           return "MethodUpdater [method=" + method + "]";
       }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to