[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