rdonkin     2004/11/08 14:29:11

  Modified:    betwixt/src/java/org/apache/commons/betwixt
                        BeanProperty.java ElementDescriptor.java
                        IntrospectionConfiguration.java
                        XMLIntrospector.java
               betwixt/src/java/org/apache/commons/betwixt/digester
                        ElementRule.java XMLIntrospectorHelper.java
               betwixt/src/java/org/apache/commons/betwixt/io
                        AbstractBeanWriter.java
               betwixt/src/test/org/apache/commons/betwixt/digester
                        TestXMLIntrospectorHelper.java
  Log:
  Deprecated XMLIntrospectorHelper :)
  
  Revision  Changes    Path
  1.10      +3 -3      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/BeanProperty.java
  
  Index: BeanProperty.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/BeanProperty.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BeanProperty.java 4 Oct 2004 21:50:35 -0000       1.9
  +++ BeanProperty.java 8 Nov 2004 22:29:11 -0000       1.10
  @@ -20,7 +20,6 @@
   import java.util.Map;
   
   import org.apache.commons.beanutils.DynaProperty;
  -import org.apache.commons.betwixt.digester.XMLIntrospectorHelper;
   import org.apache.commons.betwixt.expression.DynaBeanExpression;
   import org.apache.commons.betwixt.expression.Expression;
   import org.apache.commons.betwixt.expression.IteratorExpression;
  @@ -182,7 +181,7 @@
                       propertyExpression,
                       propertyUpdater);
               
  -        } else if ( XMLIntrospectorHelper.isLoopType( getPropertyType() ) ) {
  +        } else if ( configuration.isLoopType( getPropertyType() ) ) {
               
               if (log.isTraceEnabled()) {
                   log.trace("Loop type: " + getPropertyName());
  @@ -308,7 +307,7 @@
           } else {
               result = entryDescriptor;
           }
  -
  +        result.setCollective(true);
           return result;
       }
   
  @@ -336,6 +335,7 @@
           // set the property updater (if it exists)
           // may be overridden later by the adder
           loopDescriptor.setUpdater(propertyUpdater);
  +        loopDescriptor.setCollective(true);
           
           if ( configuration.isWrapCollectionsInElement() ) {
               // create wrapping desctiptor
  
  
  
  1.20      +12 -7     
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.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- ElementDescriptor.java    4 Oct 2004 22:27:12 -0000       1.19
  +++ ElementDescriptor.java    8 Nov 2004 22:29:11 -0000       1.20
  @@ -18,7 +18,6 @@
   import java.util.ArrayList;
   import java.util.List;
   
  -import org.apache.commons.betwixt.digester.XMLIntrospectorHelper;
   import org.apache.commons.betwixt.expression.Expression;
   
   /** <p><code>ElementDescriptor</code> describes the XML elements
  @@ -79,6 +78,9 @@
   
       /** Whether this element refers to a primitive type (or property of a 
parent object) */
       private boolean primitiveType;
  +    /** Is this a collective type? */
  +    private boolean isCollectiveType;
  +    
       /**
        * Is this element hollow?
        * In other words, is this descriptor a place holder indicating the name
  @@ -555,12 +557,15 @@
        * maybe this method is unnecessary
        */
       public boolean isCollective() {
  -        boolean result = false;
  -        Class type = getPropertyType();
  -        if (type != null) {
  -            result = XMLIntrospectorHelper.isLoopType(type);
  -        }
  -        return result;
  +        return isCollectiveType;
  +    }
  +    
  +    /**
  +     * Sets whether the element described is a collective.
  +     * @param isCollectiveType
  +     */
  +    public void setCollective(boolean isCollectiveType) {
  +        this.isCollectiveType = isCollectiveType;
       }
   
       /** 
  
  
  
  1.6       +25 -1     
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/IntrospectionConfiguration.java
  
  Index: IntrospectionConfiguration.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/IntrospectionConfiguration.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- IntrospectionConfiguration.java   4 Oct 2004 21:50:35 -0000       1.5
  +++ IntrospectionConfiguration.java   8 Nov 2004 22:29:11 -0000       1.6
  @@ -16,6 +16,11 @@
   
   package org.apache.commons.betwixt;
   
  +import java.util.Collection;
  +import java.util.Enumeration;
  +import java.util.Iterator;
  +import java.util.Map;
  +
   import org.apache.commons.betwixt.strategy.ClassNormalizer;
   import org.apache.commons.betwixt.strategy.DefaultNameMapper;
   import org.apache.commons.betwixt.strategy.DefaultPluralStemmer;
  @@ -372,5 +377,24 @@
       public void setPropertySuppressionStrategy(
               PropertySuppressionStrategy propertySuppressionStrategy) {
           this.propertySuppressionStrategy = propertySuppressionStrategy;
  +    }
  +    
  +    /** 
  +     * Is this a loop type class?
  +     *
  +     * @param type is this <code>Class</code> a loop type?
  +     * @return true if the type is a loop type, or if type is null 
  +     */
  +    public boolean isLoopType(Class type) {
  +        // consider: should this be factored into a pluggable strategy?
  +        // check for NPEs
  +        if (type == null) {
  +            return false;
  +        }
  +        return type.isArray() 
  +            || Map.class.isAssignableFrom( type ) 
  +            || Collection.class.isAssignableFrom( type ) 
  +            || Enumeration.class.isAssignableFrom( type ) 
  +            || Iterator.class.isAssignableFrom( type );
       }
   }
  
  
  
  1.40      +4 -3      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java
  
  Index: XMLIntrospector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/XMLIntrospector.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- XMLIntrospector.java      31 Oct 2004 10:15:21 -0000      1.39
  +++ XMLIntrospector.java      8 Nov 2004 22:29:11 -0000       1.40
  @@ -643,6 +643,7 @@
               if ( isLoopType ) {
                   getLog().trace("Bean is loop");
                   ElementDescriptor loopDescriptor = new ElementDescriptor();
  +                loopDescriptor.setCollective(true);
                   loopDescriptor.setContextExpression(
                       new IteratorExpression( EmptyExpression.getInstance() )
                   );
  @@ -956,7 +957,7 @@
                               loopDescriptor.setSingularPropertyType( 
valueType );
                               loopDescriptor.setPropertyType( valueType );
                               children[n].addElementDescriptor(loopDescriptor);
  -                            
  +                            loopDescriptor.setCollective(true);
                           }
                           if ( getLog().isTraceEnabled() ) { 
                               getLog().trace( "Value descriptor: " + 
children[n]);
  @@ -1326,7 +1327,7 @@
        * @return true if the type is a loop type 
        */
       public boolean isLoopType(Class type) {
  -        return XMLIntrospectorHelper.isLoopType(type);
  +        return getConfiguration().isLoopType(type);
       }
       
       
  @@ -1437,7 +1438,7 @@
           
           /** @see BeanType#isLoopType */
           public boolean isLoopType() {
  -            return XMLIntrospectorHelper.isLoopType( beanClass );
  +            return getConfiguration().isLoopType( beanClass );
           }
           
           /** @see BeanType#isMapType */
  
  
  
  1.18      +3 -0      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/ElementRule.java
  
  Index: ElementRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/digester/ElementRule.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- ElementRule.java  23 Sep 2004 21:46:00 -0000      1.17
  +++ ElementRule.java  8 Nov 2004 22:29:11 -0000       1.18
  @@ -115,6 +115,9 @@
               getPropertyType( propertyType, beanClass, propertyName ) 
           );
           
  +        descriptor.setCollective(getXMLIntrospector().getConfiguration()
  +                .isLoopType(descriptor.getPropertyType()));
  +        
           String implementationClass = attributes.getValue( "class" );
           if ( log.isTraceEnabled() ) {
               log.trace("'class' attribute=" + implementationClass);
  
  
  
  1.34      +3 -0      
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.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- XMLIntrospectorHelper.java        4 Oct 2004 22:27:12 -0000       1.33
  +++ XMLIntrospectorHelper.java        8 Nov 2004 22:29:11 -0000       1.34
  @@ -48,6 +48,8 @@
     * think about whether they need replacing with something different.
     * @author <a href="mailto:[EMAIL PROTECTED]">James Strachan</a>
     * @author <a href="mailto:[EMAIL PROTECTED]">Martin van den Bemt</a>
  +  *
  +  * @deprecated
     */
   public class XMLIntrospectorHelper {
   
  @@ -549,6 +551,7 @@
        *
        * @param type is this <code>Class</code> a loop type?
        * @return true if the type is a loop type, or if type is null 
  +     * @deprecated
        */
       public static boolean isLoopType(Class type) {
           // check for NPEs
  
  
  
  1.33      +2 -2      
jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java
  
  Index: AbstractBeanWriter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- AbstractBeanWriter.java   23 Sep 2004 21:46:00 -0000      1.32
  +++ AbstractBeanWriter.java   8 Nov 2004 22:29:11 -0000       1.33
  @@ -1080,7 +1080,7 @@
           }
           
           // always write out loops - even when they have no elements
  -        if ( XMLIntrospectorHelper.isLoopType( descriptor.getPropertyType() 
) ) {
  +        if ( descriptor.isCollective() ) {
               log.trace("Loop type so not empty.");
               return false;
           }
  
  
  
  1.9       +2 -2      
jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/digester/TestXMLIntrospectorHelper.java
  
  Index: TestXMLIntrospectorHelper.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/betwixt/src/test/org/apache/commons/betwixt/digester/TestXMLIntrospectorHelper.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestXMLIntrospectorHelper.java    13 Jun 2004 21:32:47 -0000      1.8
  +++ TestXMLIntrospectorHelper.java    8 Nov 2004 22:29:11 -0000       1.9
  @@ -71,7 +71,7 @@
       }
       
       public void testNullParameters() throws Exception {
  -        XMLIntrospectorHelper.isLoopType(null);
  +        new XMLIntrospector().isLoopType(null);
       }
   
       /**
  
  
  

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

Reply via email to