[jboss-svn-commits] JBoss Common SVN: r4031 - in jbossxb/trunk/src/main/java/org/jboss/xb/builder: runtime and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 11 04:46:17 EST 2010


Author: alex.loubyansky at jboss.com
Date: 2010-02-11 04:46:17 -0500 (Thu, 11 Feb 2010)
New Revision: 4031

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBBuilder.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/MapPropertyHandler.java
Log:
JBXB-236, JBXB-237

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBBuilder.java	2010-02-11 05:38:16 UTC (rev 4030)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBBuilder.java	2010-02-11 09:46:17 UTC (rev 4031)
@@ -63,6 +63,9 @@
    /** system property name to use for initialization */
    public static final String SEQUENCES_REQUIRE_PROP_ORDER = "xb.builder.sequencesRequirePropOrder";
 
+   /** system property name to use for initialization */
+   public static final String ELEMENT_SET_PARENT_OVERRIDE_HANDLER = "xb.builder.elementSetParentOverrideHandler";
+
    /** The configuration */
    static Configuration configuration;
    
@@ -76,6 +79,8 @@
 
    static boolean sequencesRequirePropOrder;
 
+   static boolean elementSetParentHandler = true;
+
    static
    {
       configuration = AccessController.doPrivileged(new PrivilegedAction<PropertyConfiguration>()
@@ -89,31 +94,25 @@
       STRING = configuration.getClassInfo(String.class);
       OBJECT = configuration.getClassInfo(Object.class);
       
-      String useUnorderedSequenceStr = AccessController.doPrivileged(
+      useUnorderedSequence = getBooleanProperty(JBossXBBuilder.USE_UNORDERED_SEQUENCE_PROPERTY, false);
+      sequencesRequirePropOrder = getBooleanProperty(JBossXBBuilder.SEQUENCES_REQUIRE_PROP_ORDER, true);
+      elementSetParentHandler = getBooleanProperty(JBossXBBuilder.ELEMENT_SET_PARENT_OVERRIDE_HANDLER, true);
+   }
+
+   private static boolean getBooleanProperty(final String propertyName, boolean defaultValue)
+   {
+      String stringValue = AccessController.doPrivileged(
             new PrivilegedAction<String>()
             {
                public String run()
                {
-                  return System.getProperty(JBossXBBuilder.USE_UNORDERED_SEQUENCE_PROPERTY);
+                  return System.getProperty(propertyName);
                }               
             }
       );            
-      if(useUnorderedSequenceStr != null)
-         useUnorderedSequence = Boolean.parseBoolean(useUnorderedSequenceStr);
-      
-      String sequencesRequirePropOrderStr = AccessController.doPrivileged(
-            new PrivilegedAction<String>()
-            {
-               public String run()
-               {
-                  return System.getProperty(JBossXBBuilder.SEQUENCES_REQUIRE_PROP_ORDER);
-               }               
-            }
-      ); 
-      if(sequencesRequirePropOrderStr != null)
-         sequencesRequirePropOrder = Boolean.parseBoolean(sequencesRequirePropOrderStr);
-      else
-         sequencesRequirePropOrder = true;
+      if(stringValue != null)
+         return Boolean.parseBoolean(stringValue);
+      return defaultValue;
    }
    
    public static boolean isUseUnorderedSequence()
@@ -135,7 +134,17 @@
    {
       JBossXBBuilder.sequencesRequirePropOrder = sequencesRequirePropOrder;
    }
+
+   public static boolean isElementSetParentOverrideHandler()
+   {
+      return elementSetParentHandler;
+   }
    
+   public static void setElementSetParentOverrideHandler(boolean elementSetParentHandler)
+   {
+      JBossXBBuilder.elementSetParentHandler = elementSetParentHandler;
+   }
+
    /**
     * Create a new schema binding initializer
     * 
@@ -253,6 +262,7 @@
       JBossXBNoSchemaBuilder builder = new JBossXBNoSchemaBuilder(classInfo);
       builder.setUseUnorderedSequence(useUnorderedSequence);
       builder.setSequencesRequirePropOrder(sequencesRequirePropOrder);
+      builder.setElementSetParentOverrideHandler(elementSetParentHandler);
       builder.build(schemaBinding);
    }
    
@@ -288,6 +298,7 @@
          JBossXBNoSchemaBuilder builder = new JBossXBNoSchemaBuilder(classInfo);
          builder.setUseUnorderedSequence(useUnorderedSequence);
          builder.setSequencesRequirePropOrder(sequencesRequirePropOrder);
+         builder.setElementSetParentOverrideHandler(elementSetParentHandler);
          binding = builder.build();
          classInfo.setAttachment(SchemaBinding.class.getName(), binding);
       }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2010-02-11 05:38:16 UTC (rev 4030)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2010-02-11 09:46:17 UTC (rev 4031)
@@ -187,6 +187,7 @@
    
    private boolean useUnorderedSequence;
    private boolean sequencesRequirePropOrder;
+   private boolean elementSetParentHandler;
 
    /** transient property names by type name */
    private Map<String, Set<String>> jbossXmlTransients = Collections.emptyMap();
@@ -228,7 +229,17 @@
    {
       this.sequencesRequirePropOrder = sequencesRequirePropOrder;
    }
-   
+
+   public boolean isElementSetParentOverrideHandler()
+   {
+      return elementSetParentHandler;
+   }
+
+   public void setElementSetParentOverrideHandler(boolean elementSetParentHandler)
+   {
+      this.elementSetParentHandler = elementSetParentHandler;
+   }
+
    /**
     * Build the schema
     * 
@@ -1538,7 +1549,8 @@
             ElementBinding elementBinding = createElementBinding(propertyType, elementTypeBinding, propertyQName, false);
 
             AbstractPropertyHandler propertyHandler = new PropertyHandler(property, propertyType);
-            elementBinding.setHandler(new SetParentOverrideHandler(elementTypeBinding.getHandler(), propertyHandler));
+            if(elementSetParentHandler)
+               elementBinding.setHandler(new SetParentOverrideHandler(elementTypeBinding.getHandler(), propertyHandler));
             beanAdapterFactory.addProperty(propertyQName, propertyHandler);
 
             // Bind it to the model
@@ -1728,7 +1740,8 @@
                   }
                   if(propertyHandler == null)
                      propertyHandler = new PropertyHandler(property, localPropertyType);
-                  wrapperElement.setHandler(new SetParentOverrideHandler(wrapperElement.getHandler(), propertyHandler));
+                  if(elementSetParentHandler)
+                     wrapperElement.setHandler(new SetParentOverrideHandler(wrapperElement.getHandler(), propertyHandler));
                }
                else
                {
@@ -1816,7 +1829,7 @@
             targetGroup.addParticle(particle);
          }
 
-         if(elementBinding != null)
+         if(elementBinding != null && elementSetParentHandler)
             elementBinding.setHandler(new SetParentOverrideHandler(elementBinding.getType().getHandler(), propertyHandler));
 
          beanAdapterFactory.addProperty(propertyQName, propertyHandler);
@@ -2305,7 +2318,8 @@
             keyValueSequence.addParticle(particle);
             PropertyHandler keyHandler = new PropertyHandler(entryInfo.getProperty("key"), keyType);
             entryAdapterFactory.addProperty(keyElementBinding.getQName(), keyHandler);
-            keyElementBinding.setHandler(new SetParentOverrideHandler(keyTypeBinding.getHandler(), keyHandler));
+            if(elementSetParentHandler)
+               keyElementBinding.setHandler(new SetParentOverrideHandler(keyTypeBinding.getHandler(), keyHandler));
          }
          
          if(valueElement != null)
@@ -2319,7 +2333,8 @@
             keyValueSequence.addParticle(particle);
             PropertyHandler valueHandler = new PropertyHandler(entryInfo.getProperty("value"), valueType);
             entryAdapterFactory.addProperty(valueElementBinding.getQName(), valueHandler);
-            valueElementBinding.setHandler(new SetParentOverrideHandler(valueTypeBinding.getHandler(), valueHandler));
+            if(elementSetParentHandler)
+               valueElementBinding.setHandler(new SetParentOverrideHandler(valueTypeBinding.getHandler(), valueHandler));
          }
       }
       else if(entryElement != null && !JBossXmlMapEntry.DEFAULT.class.equals(entryElement.type()))

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java	2010-02-11 05:38:16 UTC (rev 4030)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/CollectionPropertyHandler.java	2010-02-11 09:46:17 UTC (rev 4031)
@@ -34,7 +34,6 @@
 import org.jboss.reflect.spi.ConstructorInfo;
 import org.jboss.reflect.spi.TypeInfo;
 import org.jboss.xb.annotations.JBossXmlCollection;
-import org.jboss.xb.binding.JBossXBRuntimeException;
 import org.jboss.xb.spi.BeanAdapter;
 
 /**
@@ -120,14 +119,6 @@
       {
          if(!componentType.isInstance(child))
             throw new IllegalArgumentException("Child is not an instance of " + componentType + ", child: " + child);
-         try
-         {
-            child = componentType.convertValue(child);
-         }
-         catch (Throwable e)
-         {
-            throw new JBossXBRuntimeException("QName " + qName + " error converting " + BuilderUtil.toDebugString(child) + " to type " + componentType.getName(), e);
-         }
       }
 
       BeanAdapter beanAdapter = (BeanAdapter) parent;

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/MapPropertyHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/MapPropertyHandler.java	2010-02-11 05:38:16 UTC (rev 4030)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/MapPropertyHandler.java	2010-02-11 09:46:17 UTC (rev 4031)
@@ -267,19 +267,6 @@
          throw new IllegalArgumentException("Key is not an instance of " + keyType + ", key: " + key);
       if (valueType != null && value != null && valueType.isInstance(value) == false)
          throw new IllegalArgumentException("Value is not an instance of " + valueType + ", value: " + value);
-
-      try
-      {
-         if (keyType != null && key != null)
-            key = keyType.convertValue(key);
-         if (valueType != null && value != null)
-            value = valueType.convertValue(value);
-      }
-      catch (Throwable t)
-      {
-         throw new RuntimeException(t);
-      }
-
       map.put(key, value);
    }
 



More information about the jboss-svn-commits mailing list