You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rd...@apache.org on 2003/07/13 23:28:10 UTC

cvs commit: jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester AddDefaultsRule.java TextRule.java XMLIntrospectorHelper.java

rdonkin     2003/07/13 14:28:10

  Modified:    betwixt/src/java/org/apache/commons/betwixt/digester
                        AddDefaultsRule.java TextRule.java
                        XMLIntrospectorHelper.java
  Log:
  Added support for simple reading of beans with mixed content. Patch submitted by Aslak Hellesoy.
  
  Revision  Changes    Path
  1.7       +24 -11    jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/AddDefaultsRule.java
  
  Index: AddDefaultsRule.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/AddDefaultsRule.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AddDefaultsRule.java	7 Jan 2003 22:32:57 -0000	1.6
  +++ AddDefaultsRule.java	13 Jul 2003 21:28:10 -0000	1.7
  @@ -66,10 +66,11 @@
   import java.beans.PropertyDescriptor;
   import java.util.Set;
   
  -import org.apache.commons.betwixt.AttributeDescriptor;
  -import org.apache.commons.betwixt.ElementDescriptor;
   import org.apache.commons.betwixt.NodeDescriptor;
  +import org.apache.commons.betwixt.Descriptor;
  +import org.apache.commons.betwixt.ElementDescriptor;
   import org.apache.commons.betwixt.XMLBeanInfo;
  +import org.apache.commons.betwixt.AttributeDescriptor;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.xml.sax.Attributes;
  @@ -115,9 +116,8 @@
                           if ( procesedProperties.contains( name ) ) {
                               continue;
                           }
  -                        NodeDescriptor nodeDescriptor = XMLIntrospectorHelper.createDescriptor( 
  -                            descriptor, attributesForPrimitives, getXMLIntrospector()
  -                        );
  +                        Descriptor nodeDescriptor = getXMLIntrospector().createDescriptor(
  +                                    descriptor, attributesForPrimitives);
                           if ( nodeDescriptor != null ) {
                               addDescriptor( nodeDescriptor );
                           }
  @@ -138,7 +138,7 @@
   
       // Implementation methods
       //-------------------------------------------------------------------------    
  -    
  +   
       /**
       * Add a desciptor to the top object on the Digester stack.
       * 
  @@ -146,8 +146,21 @@
       * @throws SAXException if the parent for the addDefaults element is not a <element> 
       * or if the top object on the stack is not a <code>XMLBeanInfo</code> or a 
       * <code>ElementDescriptor</code>
  +    * @deprecated replaced {@link #addDescriptor( Descriptor )} 
       */
       protected void addDescriptor( NodeDescriptor nodeDescriptor ) throws SAXException {
  +        addDescriptor( (Descriptor) nodeDescriptor );
  +    }
  +      
  +    /**
  +    * Add a desciptor to the top object on the Digester stack.
  +    * 
  +    * @param nodeDescriptor add this <code>NodeDescriptor</code>. Must not be null.
  +    * @throws SAXException if the parent for the addDefaults element is not a <element> 
  +    * or if the top object on the stack is not a <code>XMLBeanInfo</code> or a 
  +    * <code>ElementDescriptor</code>
  +    */
  +    protected void addDescriptor( Descriptor nodeDescriptor ) throws SAXException {
           Object top = digester.peek();
           if ( top instanceof XMLBeanInfo ) {
               log.warn( "It is advisable to put an <addDefaults/> element inside an <element> tag" );
  
  
  
  1.4       +6 -1      jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/TextRule.java
  
  Index: TextRule.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/TextRule.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TextRule.java	11 Jun 2003 21:29:32 -0000	1.3
  +++ TextRule.java	13 Jul 2003 21:28:10 -0000	1.4
  @@ -63,6 +63,7 @@
   
   import org.apache.commons.betwixt.expression.MethodExpression;
   import org.apache.commons.betwixt.expression.ConstantExpression;
  +import org.apache.commons.betwixt.expression.MethodUpdater;
   import org.apache.commons.betwixt.TextDescriptor;
   import org.apache.commons.betwixt.ElementDescriptor;
   import org.apache.commons.betwixt.XMLBeanInfo;
  @@ -137,6 +138,10 @@
                   if ( propertyDescriptor != null ) { 
                           Method readMethod = propertyDescriptor.getReadMethod();
                           descriptor.setTextExpression( new MethodExpression( readMethod ) );
  +                        Method writeMethod = propertyDescriptor.getWriteMethod();
  +                        if (writeMethod != null) {
  +                            descriptor.setUpdater( new MethodUpdater(writeMethod));
  +                        }
                           getProcessedPropertyNameSet().add( name );
                   }
               }
  
  
  
  1.23      +3 -1      jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/XMLIntrospectorHelper.java
  
  Index: XMLIntrospectorHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/XMLIntrospectorHelper.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- XMLIntrospectorHelper.java	1 Jul 2003 19:09:49 -0000	1.22
  +++ XMLIntrospectorHelper.java	13 Jul 2003 21:28:10 -0000	1.23
  @@ -115,6 +115,7 @@
       }
       
   
  +
       /** 
        * Process a property. 
        * Go through and work out whether it's a loop property, a primitive or a standard.
  @@ -125,6 +126,7 @@
        * @param introspector use this <code>XMLIntrospector</code>
        * @return a correctly configured <code>NodeDescriptor</code> for the property
        * @throws IntrospectionException when bean introspection fails
  +     * @deprecated this method has been replaced by {@link XMLIntrospector#createDescriptor}
        */
       public static NodeDescriptor createDescriptor( 
           PropertyDescriptor propertyDescriptor, 
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org