rdonkin     2004/07/14 14:38:17

  Modified:    betwixt/src/java/org/apache/commons/betwixt
                        BeanProperty.java IntrospectionConfiguration.java
                        XMLIntrospector.java
               betwixt/src/java/org/apache/commons/betwixt/digester
                        XMLIntrospectorHelper.java
  Log:
  New strategy to replace primitives. More work needed before move to simple types is 
finished but this is a step in the right direction.
  
  Revision  Changes    Path
  1.8       +5 -2      
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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- BeanProperty.java 4 Jul 2004 16:59:14 -0000       1.7
  +++ BeanProperty.java 14 Jul 2004 21:38:17 -0000      1.8
  @@ -29,6 +29,7 @@
   import org.apache.commons.betwixt.expression.Updater;
   import org.apache.commons.betwixt.strategy.NameMapper;
   import org.apache.commons.betwixt.strategy.SimpleTypeMapper;
  +import org.apache.commons.betwixt.strategy.TypeBindingStrategy;
   import org.apache.commons.logging.Log;
   
   /** 
  @@ -178,8 +179,10 @@
           //TODO this big conditional should be replaced with subclasses based
           // on the type
           
  -        //TODO replace with simple type support
  -        if ( XMLIntrospectorHelper.isPrimitiveType( getPropertyType() ) ) {
  +        //TODO complete simple type implementation
  +        TypeBindingStrategy.BindingType bindingType 
  +                     = configuration.getTypeBindingStrategy().bindingType( 
getPropertyType() ) ;
  +        if ( bindingType.equals( TypeBindingStrategy.BindingType.PRIMITIVE ) ) {
               descriptor =
                   createDescriptorForPrimitive(
                       configuration,
  
  
  
  1.3       +25 -4     
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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- IntrospectionConfiguration.java   13 Jun 2004 21:32:45 -0000      1.2
  +++ IntrospectionConfiguration.java   14 Jul 2004 21:38:17 -0000      1.3
  @@ -24,6 +24,7 @@
   import org.apache.commons.betwixt.strategy.PluralStemmer;
   import org.apache.commons.betwixt.strategy.SimpleTypeMapper;
   import org.apache.commons.betwixt.strategy.StandardSimpleTypeMapper;
  +import org.apache.commons.betwixt.strategy.TypeBindingStrategy;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   
  @@ -77,10 +78,11 @@
   
       /** Prefix naming strategy */
       private NamespacePrefixMapper prefixMapper = new NamespacePrefixMapper();
  -    /** Binding strategy for simple types */
  +    /** Mapping strategy for simple types */
       private SimpleTypeMapper simpleTypeMapper = new StandardSimpleTypeMapper();
  -
  -
  +    /** Binding strategy for Java type */
  +    private TypeBindingStrategy typeBindingStrategy = TypeBindingStrategy.DEFAULT;
  +    
       /**
         * Gets the <code>ClassNormalizer</code> strategy.
         * This is used to determine the Class to be introspected
  @@ -300,4 +302,23 @@
           simpleTypeMapper = mapper;
       }
   
  +    /**
  +     * Gets the <code>TypeBindingStrategy</code> to be used
  +     * to determine the binding for Java types.
  +     * @return the <code>TypeBindingStrategy</code> to be used, 
  +     * not null
  +     */
  +    public TypeBindingStrategy getTypeBindingStrategy() {
  +        return typeBindingStrategy;
  +    }
  +    
  +    /**
  +     * Sets the <code>TypeBindingStrategy</code> to be used
  +     * to determine the binding for Java types.
  +     * @param typeBindingStrategy the <code>TypeBindingStrategy</code> to be used,
  +     * not null
  +     */
  +    public void setTypeBindingStrategy(TypeBindingStrategy typeBindingStrategy) {
  +        this.typeBindingStrategy = typeBindingStrategy;
  +    }
   }
  
  
  
  1.31      +7 -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.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- XMLIntrospector.java      4 Jul 2004 16:59:14 -0000       1.30
  +++ XMLIntrospector.java      14 Jul 2004 21:38:17 -0000      1.31
  @@ -46,6 +46,7 @@
   import org.apache.commons.betwixt.strategy.DefaultPluralStemmer;
   import org.apache.commons.betwixt.strategy.NameMapper;
   import org.apache.commons.betwixt.strategy.PluralStemmer;
  +import org.apache.commons.betwixt.strategy.TypeBindingStrategy;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   
  @@ -1180,13 +1181,16 @@
       
       /** 
        * Is this class a primitive?
  -     * TODO: this method will probably be removed when primitive types
  +     * TODO: this method will probably be deprecated when primitive types
        * are subsumed into the simple type concept 
        * @param type the Class to test
        * @return true for primitive types 
        */
       public boolean isPrimitiveType(Class type) {
  -        return XMLIntrospectorHelper.isPrimitiveType(type);
  +        TypeBindingStrategy.BindingType bindingType 
  +                     = configuration.getTypeBindingStrategy().bindingType( type ) ;
  +        boolean result = 
(bindingType.equals(TypeBindingStrategy.BindingType.PRIMITIVE));
  +        return result;
       }
   
       
  @@ -1277,7 +1281,7 @@
           
           /** @see BeanType#isPrimitiveType */
           public boolean isPrimitiveType() {
  -            return XMLIntrospectorHelper.isPrimitiveType( beanClass );
  +            return XMLIntrospector.this.isPrimitiveType( beanClass );
           }
           
           /** @see BeanType#isLoopType */
  
  
  
  1.32      +1 -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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- XMLIntrospectorHelper.java        4 Jul 2004 16:40:49 -0000       1.31
  +++ XMLIntrospectorHelper.java        14 Jul 2004 21:38:17 -0000      1.32
  @@ -573,6 +573,7 @@
        * type can be varied.
        * @param type is this <code>Class<code> a primitive type?
        * @return true for primitive types 
  +     * @deprecated replaced by [EMAIL PROTECTED] 
org.apache.commons.betwixt.strategy.TypeBindingStrategy}
        */
       public static boolean isPrimitiveType(Class type) {
           if ( type == null ) {
  
  
  

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

Reply via email to