Seam SVN: r13542 - modules/xml/trunk.
by seam-commits@lists.jboss.org
Author: swd847
Date: 2010-08-01 17:23:34 -0400 (Sun, 01 Aug 2010)
New Revision: 13542
Modified:
modules/xml/trunk/pom.xml
Log:
update pom
Modified: modules/xml/trunk/pom.xml
===================================================================
--- modules/xml/trunk/pom.xml 2010-08-01 12:59:15 UTC (rev 13541)
+++ modules/xml/trunk/pom.xml 2010-08-01 21:23:34 UTC (rev 13542)
@@ -17,6 +17,7 @@
<properties>
<seam.version>3.0.0.b01</seam.version>
<weld-extensions.version>1.0.0-SNAPSHOT</weld-extensions.version>
+ <el-impl.version>1.0</el-impl.version>
</properties>
<prerequisites>
@@ -50,7 +51,11 @@
<artifactId>weld-extensions</artifactId>
<version>${weld-extensions.version}</version>
</dependency>
-
+ <dependency>
+ <groupId>el-impl</groupId>
+ <artifactId>el-impl</artifactId>
+ <version>${el-impl.version}</version>
+ </dependency>
</dependencies>
</dependencyManagement>
13 years, 8 months
Seam SVN: r13541 - in modules/xml/trunk/impl: src/main/java/org/jboss/seam/xml/bootstrap and 4 other directories.
by seam-commits@lists.jboss.org
Author: swd847
Date: 2010-08-01 08:59:15 -0400 (Sun, 01 Aug 2010)
New Revision: 13541
Added:
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ELFieldValue.java
modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/ELValueProducer.java
Modified:
modules/xml/trunk/impl/pom.xml
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/bootstrap/XmlExtension.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueObject.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InjectionTargetWrapper.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java
modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/FieldValueBean.java
modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/SetFieldValueBeanTest.java
modules/xml/trunk/impl/src/test/resources/org/jboss/seam/xml/test/fieldset/set-field-value-beans.xml
Log:
add ability to use EL in seam-xml
Modified: modules/xml/trunk/impl/pom.xml
===================================================================
--- modules/xml/trunk/impl/pom.xml 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/pom.xml 2010-08-01 12:59:15 UTC (rev 13541)
@@ -68,7 +68,13 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
-
+
+
+ <dependency>
+ <groupId>el-impl</groupId>
+ <artifactId>el-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/bootstrap/XmlExtension.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/bootstrap/XmlExtension.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/bootstrap/XmlExtension.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -222,7 +222,7 @@
}
}
- public <T> void processInjectionTarget(@Observes ProcessInjectionTarget<T> event)
+ public <T> void processInjectionTarget(@Observes ProcessInjectionTarget<T> event, BeanManager manager)
{
AnnotatedType<T> at = event.getAnnotatedType();
@@ -231,7 +231,7 @@
{
log.info("Wrapping InjectionTarget to set field values: " + event.getAnnotatedType().getJavaClass().getName());
List<FieldValueObject> fvs = fieldValues.get(xid.value());
- event.setInjectionTarget(new InjectionTargetWrapper<T>(event.getInjectionTarget(), fvs));
+ event.setInjectionTarget(new InjectionTargetWrapper<T>(event.getInjectionTarget(), fvs, manager));
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -26,6 +26,7 @@
import java.util.List;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
import org.jboss.seam.xml.model.ValueXmlItem;
import org.jboss.weld.extensions.util.properties.Property;
@@ -54,7 +55,7 @@
}
- public void setValue(Object instance, CreationalContext<?> ctx)
+ public void setValue(Object instance, CreationalContext<?> ctx, BeanManager manager)
{
try
{
@@ -62,7 +63,7 @@
field.setValue(instance, array);
for (int i = 0; i < values.size(); ++i)
{
- Array.set(array, i, values.get(i).value(arrayType, ctx));
+ Array.set(array, i, values.get(i).value(arrayType, ctx, manager));
}
}
catch (Exception e)
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -34,6 +34,7 @@
import java.util.TreeSet;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
import org.jboss.seam.xml.model.ValueXmlItem;
import org.jboss.seam.xml.util.TypeReader;
@@ -118,7 +119,7 @@
}
}
- public void setValue(Object instance, CreationalContext<?> ctx)
+ public void setValue(Object instance, CreationalContext<?> ctx, BeanManager manager)
{
try
{
@@ -126,7 +127,7 @@
field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
- res.add(values.get(i).value(elementType, ctx));
+ res.add(values.get(i).value(elementType, ctx, manager));
}
}
catch (Exception e)
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -22,6 +22,7 @@
package org.jboss.seam.xml.fieldset;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
import org.jboss.seam.xml.util.XmlObjectConverter;
@@ -40,7 +41,7 @@
this.stringValue = stringValue;
}
- public Object value(Class<?> type, CreationalContext<?> cyx)
+ public Object value(Class<?> type, CreationalContext<?> cyx, BeanManager manager)
{
return XmlObjectConverter.convert(type, stringValue);
}
Added: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ELFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ELFieldValue.java (rev 0)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ELFieldValue.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.xml.fieldset;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+
+import org.jboss.weld.extensions.el.Expressions;
+import org.jboss.weld.extensions.literal.DefaultLiteral;
+
+/**
+ * Field value impl for EL expressions
+ *
+ * @author Stuart Douglas
+ *
+ */
+public class ELFieldValue implements FieldValue
+{
+ private final String expression;
+ private Expressions expressions;
+
+ public ELFieldValue(String expression)
+ {
+ this.expression = expression;
+ }
+
+ public Object value(Class<?> type, CreationalContext<?> ctx, BeanManager manager)
+ {
+ if (expressions == null)
+ {
+ Bean<Expressions> expressionsBean = (Bean) manager.resolve(manager.getBeans(Expressions.class, DefaultLiteral.INSTANCE));
+ CreationalContext<Expressions> bc = manager.createCreationalContext(expressionsBean);
+ expressions = (Expressions) manager.getReference(expressionsBean, Expressions.class, bc);
+ }
+ return expressions.evaluateValueExpression(expression);
+ }
+}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -22,6 +22,7 @@
package org.jboss.seam.xml.fieldset;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
/**
* represents an initial field value. This may just be a wrapper around a
@@ -32,5 +33,5 @@
*/
public interface FieldValue
{
- public Object value(Class<?> type, CreationalContext<?> ctx);
+ public Object value(Class<?> type, CreationalContext<?> ctx, BeanManager manager);
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueObject.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueObject.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueObject.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -22,6 +22,7 @@
package org.jboss.seam.xml.fieldset;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
/**
* FieldValueObjects set field values for a given instance
@@ -31,6 +32,6 @@
*/
public interface FieldValueObject
{
- public void setValue(Object instance, CreationalContext<?> ctx);
+ public void setValue(Object instance, CreationalContext<?> ctx, BeanManager manager);
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InjectionTargetWrapper.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InjectionTargetWrapper.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InjectionTargetWrapper.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -25,6 +25,7 @@
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.InjectionTarget;
@@ -32,18 +33,20 @@
{
private final InjectionTarget<T> target;
private final List<FieldValueObject> fieldValues;
+ private final BeanManager manager;
- public InjectionTargetWrapper(InjectionTarget<T> target, List<FieldValueObject> fieldValues)
+ public InjectionTargetWrapper(InjectionTarget<T> target, List<FieldValueObject> fieldValues, BeanManager manager)
{
this.fieldValues = fieldValues;
this.target = target;
+ this.manager = manager;
}
public void inject(T instance, CreationalContext<T> ctx)
{
for (FieldValueObject f : fieldValues)
{
- f.setValue(instance, ctx);
+ f.setValue(instance, ctx, manager);
}
target.inject(instance, ctx);
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -38,18 +38,15 @@
private final InlineBeanQualifier.InlineBeanQualifierLiteral literal;
- private final BeanManager manager;
-
private Bean<?> bean;
- public InlineBeanFieldValue(int syntheticBeanQualifierNo, BeanManager manager)
+ public InlineBeanFieldValue(int syntheticBeanQualifierNo)
{
this.beanId = syntheticBeanQualifierNo;
this.literal = new InlineBeanQualifier.InlineBeanQualifierLiteral(beanId);
- this.manager = manager;
}
- public Object value(Class<?> type, CreationalContext<?> ctx)
+ public Object value(Class<?> type, CreationalContext<?> ctx, BeanManager manager)
{
if (bean == null)
{
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -33,6 +33,7 @@
import java.util.Map.Entry;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
import org.jboss.seam.xml.model.EntryXmlItem;
import org.jboss.seam.xml.util.TypeReader;
@@ -104,7 +105,7 @@
}
}
- public void setValue(Object instance, CreationalContext<?> ctx)
+ public void setValue(Object instance, CreationalContext<?> ctx, BeanManager manager)
{
try
{
@@ -113,7 +114,7 @@
for (int i = 0; i < values.size(); ++i)
{
Entry<Object, FieldValue> e = values.get(i);
- res.put(e.getKey(), e.getValue().value(valueType, ctx));
+ res.put(e.getKey(), e.getValue().value(valueType, ctx, manager));
}
}
catch (Exception e)
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -22,6 +22,7 @@
package org.jboss.seam.xml.fieldset;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.BeanManager;
import org.jboss.weld.extensions.util.properties.Property;
@@ -44,11 +45,11 @@
this.value = value;
}
- public void setValue(Object instance, CreationalContext<?> ctx)
+ public void setValue(Object instance, CreationalContext<?> ctx, BeanManager manager)
{
try
{
- field.setValue(instance, value.value(field.getJavaClass(), ctx));
+ field.setValue(instance, value.value(field.getJavaClass(), ctx, manager));
}
catch (Exception e)
{
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -25,6 +25,8 @@
import java.lang.reflect.Method;
import org.jboss.seam.xml.fieldset.ConstantFieldValue;
+import org.jboss.seam.xml.fieldset.ELFieldValue;
+import org.jboss.seam.xml.fieldset.FieldValue;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.seam.xml.util.TypeOccuranceInformation;
import org.jboss.weld.extensions.util.properties.Properties;
@@ -40,9 +42,19 @@
super(XmlItemType.FIELD, parent, parent.getJavaClass(), innerText, null, document, lineno);
this.field = c;
this.property = getFieldValueSetter(c);
+
if (innerText != null && innerText.length() > 0)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, new ConstantFieldValue(innerText));
+ FieldValue fv;
+ if (innerText.matches("^#\\{.*\\}$"))
+ {
+ fv = new ELFieldValue(innerText);
+ }
+ else
+ {
+ fv = new ConstantFieldValue(innerText);
+ }
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, fv);
}
allowed.add(TypeOccuranceInformation.of(XmlItemType.ANNOTATION, null, null));
allowed.add(TypeOccuranceInformation.of(XmlItemType.VALUE, null, null));
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -24,6 +24,8 @@
import java.lang.reflect.Method;
import org.jboss.seam.xml.fieldset.ConstantFieldValue;
+import org.jboss.seam.xml.fieldset.ELFieldValue;
+import org.jboss.seam.xml.fieldset.FieldValue;
import org.jboss.seam.xml.fieldset.FieldValueObject;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.weld.extensions.util.properties.Properties;
@@ -44,7 +46,16 @@
this.property = Properties.createProperty(setter);
if (innerText != null && innerText.length() > 0)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, new ConstantFieldValue(innerText));
+ FieldValue fv;
+ if (innerText.matches("^#\\{.*\\}$"))
+ {
+ fv = new ELFieldValue(innerText);
+ }
+ else
+ {
+ fv = new ConstantFieldValue(innerText);
+ }
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, fv);
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -29,6 +29,7 @@
import org.jboss.seam.xml.core.BeanResult;
import org.jboss.seam.xml.fieldset.ConstantFieldValue;
+import org.jboss.seam.xml.fieldset.ELFieldValue;
import org.jboss.seam.xml.fieldset.FieldValue;
import org.jboss.seam.xml.fieldset.InlineBeanFieldValue;
import org.jboss.seam.xml.fieldset.InlineBeanIdCreator;
@@ -85,11 +86,15 @@
{
if (inlineBean == null)
{
+ if (innerText.matches("^#\\{.*\\}$"))
+ {
+ return new ELFieldValue(innerText);
+ }
return new ConstantFieldValue(innerText);
}
else
{
- return new InlineBeanFieldValue(syntheticQualifierId, manager);
+ return new InlineBeanFieldValue(syntheticQualifierId);
}
}
}
Added: modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/ELValueProducer.java
===================================================================
--- modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/ELValueProducer.java (rev 0)
+++ modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/ELValueProducer.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.xml.test.fieldset;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Named;
+
+public class ELValueProducer
+{
+
+ public static final String EL_VALUE_STRING = "EL Value String";
+
+ @Produces
+ @Named("elValue")
+ public String getElValue()
+ {
+ return EL_VALUE_STRING;
+ }
+
+}
Modified: modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/FieldValueBean.java
===================================================================
--- modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/FieldValueBean.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/FieldValueBean.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -51,6 +51,10 @@
public long lvalue;
+ public String elValue;
+
+ public String elInnerTextValue;
+
int noFieldValue;
public void setIvalue(int value)
Modified: modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/SetFieldValueBeanTest.java
===================================================================
--- modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/SetFieldValueBeanTest.java 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/test/java/org/jboss/seam/xml/test/fieldset/SetFieldValueBeanTest.java 2010-08-01 12:59:15 UTC (rev 13541)
@@ -53,7 +53,8 @@
Assert.assertTrue(x.lvalue == 23);
Assert.assertTrue(x.svalue == 4);
Assert.assertTrue(x.noFieldValue == 7);
-
+ Assert.assertEquals(ELValueProducer.EL_VALUE_STRING, x.elValue);
+ Assert.assertEquals(ELValueProducer.EL_VALUE_STRING, x.elInnerTextValue);
}
@Test
Modified: modules/xml/trunk/impl/src/test/resources/org/jboss/seam/xml/test/fieldset/set-field-value-beans.xml
===================================================================
--- modules/xml/trunk/impl/src/test/resources/org/jboss/seam/xml/test/fieldset/set-field-value-beans.xml 2010-08-01 12:05:49 UTC (rev 13540)
+++ modules/xml/trunk/impl/src/test/resources/org/jboss/seam/xml/test/fieldset/set-field-value-beans.xml 2010-08-01 12:59:15 UTC (rev 13541)
@@ -17,6 +17,8 @@
<test:svalue>4</test:svalue>
<test:bigDecimalValue>10</test:bigDecimalValue>
<test:noField>7</test:noField>
+ <test:elValue><value>#{elValue}</value></test:elValue>
+ <test:elInnerTextValue>#{elValue}</test:elInnerTextValue>
</test:FieldValueBean>
<test:FieldValueBean ivalue="10" stringValue="hello world" enumValue="A" fvalue="0" dvalue="0" bvalue="true" lvalue="23" svalue="4" bigDecimalValue="10" noField="7" >
13 years, 8 months
Seam SVN: r13540 - in modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml: model and 1 other directory.
by seam-commits@lists.jboss.org
Author: swd847
Date: 2010-08-01 08:05:49 -0400 (Sun, 01 Aug 2010)
New Revision: 13540
Added:
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java
Modified:
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/EntryXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java
Log:
refactor inline bean implementation
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -28,8 +28,6 @@
import javax.enterprise.context.spi.CreationalContext;
import org.jboss.seam.xml.model.ValueXmlItem;
-import org.jboss.seam.xml.model.XmlItem;
-import org.jboss.seam.xml.util.XmlObjectConverter;
import org.jboss.weld.extensions.util.properties.Property;
/**
@@ -41,18 +39,17 @@
public class ArrayFieldSet implements FieldValueObject
{
final private Property field;
- final private List<Object> values;
+ final private List<FieldValue> values;
final private Class<?> arrayType;
public ArrayFieldSet(Property<?> field, List<ValueXmlItem> items)
{
this.field = field;
- this.values = new ArrayList<Object>();
+ this.values = new ArrayList<FieldValue>();
arrayType = field.getJavaClass().getComponentType();
- for (XmlItem i : items)
+ for (ValueXmlItem i : items)
{
- Object fv = XmlObjectConverter.convert(arrayType, i.getInnerText());
- values.add(fv);
+ values.add(i.getValue());
}
}
@@ -65,7 +62,7 @@
field.setValue(instance, array);
for (int i = 0; i < values.size(); ++i)
{
- Array.set(array, i, values.get(i));
+ Array.set(array, i, values.get(i).value(arrayType, ctx));
}
}
catch (Exception e)
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -36,9 +36,7 @@
import javax.enterprise.context.spi.CreationalContext;
import org.jboss.seam.xml.model.ValueXmlItem;
-import org.jboss.seam.xml.model.XmlItem;
import org.jboss.seam.xml.util.TypeReader;
-import org.jboss.seam.xml.util.XmlObjectConverter;
import org.jboss.weld.extensions.util.properties.Property;
/**
@@ -53,14 +51,14 @@
public class CollectionFieldSet implements FieldValueObject
{
private final Property field;
- private final List<Object> values;
+ private final List<FieldValue> values;
private final Class<?> elementType;
private final Class<? extends Collection> collectionType;
public CollectionFieldSet(Property field, List<ValueXmlItem> items)
{
this.field = field;
- this.values = new ArrayList<Object>();
+ this.values = new ArrayList<FieldValue>();
Type type = field.getBaseType();
if (type instanceof ParameterizedType)
@@ -114,10 +112,9 @@
throw new RuntimeException("Could not determine element type for " + field.getDeclaringClass().getName() + "." + field.getName());
}
- for (XmlItem i : items)
+ for (ValueXmlItem i : items)
{
- final Object fv = XmlObjectConverter.convert(elementType, i.getInnerText());
- values.add(fv);
+ values.add(i.getValue());
}
}
@@ -129,7 +126,7 @@
field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
- res.add(values.get(i));
+ res.add(values.get(i).value(elementType, ctx));
}
}
catch (Exception e)
Added: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java (rev 0)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ConstantFieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.xml.fieldset;
+
+import javax.enterprise.context.spi.CreationalContext;
+
+import org.jboss.seam.xml.util.XmlObjectConverter;
+
+/**
+ * Represents a simple field value in an XML document
+ *
+ * @author Stuart Douglas
+ *
+ */
+public class ConstantFieldValue implements FieldValue
+{
+ private final String stringValue;
+
+ public ConstantFieldValue(String stringValue)
+ {
+ this.stringValue = stringValue;
+ }
+
+ public Object value(Class<?> type, CreationalContext<?> cyx)
+ {
+ return XmlObjectConverter.convert(type, stringValue);
+ }
+}
Added: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java (rev 0)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.xml.fieldset;
+
+import javax.enterprise.context.spi.CreationalContext;
+
+/**
+ * represents an initial field value. This may just be a wrapper around a
+ * constant value, or it could be an inline bean declaration or EL expression
+ *
+ * @author Stuart Douglas
+ *
+ */
+public interface FieldValue
+{
+ public Object value(Class<?> type, CreationalContext<?> ctx);
+}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -25,53 +25,37 @@
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
-import org.jboss.weld.extensions.util.properties.Property;
-
/**
* Field value object for an inline bean definition
*
* @author Stuart Douglas
*
*/
-public class InlineBeanFieldValue implements FieldValueObject
+public class InlineBeanFieldValue implements FieldValue
{
- private final Property field;
-
private final int beanId;
- private final Class<?> type;
-
private final InlineBeanQualifier.InlineBeanQualifierLiteral literal;
private final BeanManager manager;
private Bean<?> bean;
- public InlineBeanFieldValue(Class<?> type, int syntheticBeanQualifierNo, Property setter, BeanManager manager)
+ public InlineBeanFieldValue(int syntheticBeanQualifierNo, BeanManager manager)
{
this.beanId = syntheticBeanQualifierNo;
- this.field = setter;
- this.type = type;
this.literal = new InlineBeanQualifier.InlineBeanQualifierLiteral(beanId);
this.manager = manager;
}
- public void setValue(Object instance, CreationalContext<?> ctx)
+ public Object value(Class<?> type, CreationalContext<?> ctx)
{
if (bean == null)
{
bean = manager.resolve(manager.getBeans(type, literal));
}
- Object obj = manager.getReference(bean, type, ctx);
- try
- {
- field.setValue(instance, obj);
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
+ return manager.getReference(bean, type, ctx);
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -49,7 +49,7 @@
public class MapFieldSet implements FieldValueObject
{
private final Property field;
- private final List<Entry<Object, Object>> values;
+ private final List<Entry<Object, FieldValue>> values;
private final Class<?> keyType;
private final Class<?> valueType;
private final Class<? extends Map> collectionType;
@@ -57,7 +57,7 @@
public MapFieldSet(Property field, List<EntryXmlItem> items)
{
this.field = field;
- this.values = new ArrayList<Entry<Object, Object>>();
+ this.values = new ArrayList<Entry<Object, FieldValue>>();
// figure out the collection type
Type type = field.getBaseType();
if (type instanceof ParameterizedType)
@@ -100,8 +100,7 @@
for (EntryXmlItem i : items)
{
final Object key = XmlObjectConverter.convert(keyType, i.getKey().getInnerText());
- final Object value = XmlObjectConverter.convert(valueType, i.getValue().getInnerText());
- values.add(new EntryImpl(key, value));
+ values.add(new EntryImpl(key, i.getValue().getValue()));
}
}
@@ -113,8 +112,8 @@
field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
- Entry<Object, Object> e = values.get(i);
- res.put(e.getKey(), e.getValue());
+ Entry<Object, FieldValue> e = values.get(i);
+ res.put(e.getKey(), e.getValue().value(valueType, ctx));
}
}
catch (Exception e)
@@ -123,11 +122,12 @@
}
}
- private final class EntryImpl implements Entry<Object, Object>
+ private final class EntryImpl implements Entry<Object, FieldValue>
{
- private Object key, value;
+ private Object key;
+ private FieldValue value;
- public EntryImpl(Object key, Object value)
+ public EntryImpl(Object key, FieldValue value)
{
this.key = key;
this.value = value;
@@ -138,12 +138,12 @@
return key;
}
- public Object getValue()
+ public FieldValue getValue()
{
return value;
}
- public Object setValue(Object value)
+ public FieldValue setValue(FieldValue value)
{
return this.value = value;
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -23,27 +23,32 @@
import javax.enterprise.context.spi.CreationalContext;
-import org.jboss.seam.xml.util.XmlObjectConverter;
import org.jboss.weld.extensions.util.properties.Property;
+/**
+ * Field value object for a simple field
+ *
+ * @author Stuart Douglas
+ *
+ */
public class SimpleFieldValue implements FieldValueObject
{
private final Property field;
- private final Object value;
+ private final FieldValue value;
- public SimpleFieldValue(Class<?> javaObject, final Property f, final String value)
+ public SimpleFieldValue(Class<?> javaObject, final Property f, FieldValue value)
{
this.field = f;
- this.value = XmlObjectConverter.convert(f.getJavaClass(), value);
+ this.value = value;
}
public void setValue(Object instance, CreationalContext<?> ctx)
{
try
{
- field.setValue(instance, value);
+ field.setValue(instance, value.value(field.getJavaClass(), ctx));
}
catch (Exception e)
{
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -34,7 +34,6 @@
import org.jboss.seam.xml.fieldset.ArrayFieldSet;
import org.jboss.seam.xml.fieldset.CollectionFieldSet;
import org.jboss.seam.xml.fieldset.FieldValueObject;
-import org.jboss.seam.xml.fieldset.InlineBeanFieldValue;
import org.jboss.seam.xml.fieldset.MapFieldSet;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.seam.xml.util.TypeOccuranceInformation;
@@ -128,14 +127,10 @@
}
ValueXmlItem value = valueEntries.get(0);
BeanResult<?> result = value.getBeanResult(manager);
- if (result == null)
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, valueEntries.get(0).getValue());
+ if (result != null)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, valueEntries.get(0).getInnerText());
- }
- else
- {
inlineBeans.add(result);
- fieldValue = new InlineBeanFieldValue(getFieldType(), value.getSyntheticQualifierId(), property, manager);
}
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/EntryXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/EntryXmlItem.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/EntryXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -83,9 +83,9 @@
return key;
}
- public XmlItem getValue()
+ public ValueXmlItem getValue()
{
- return value;
+ return (ValueXmlItem) value;
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -24,6 +24,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import org.jboss.seam.xml.fieldset.ConstantFieldValue;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.seam.xml.util.TypeOccuranceInformation;
import org.jboss.weld.extensions.util.properties.Properties;
@@ -41,7 +42,7 @@
this.property = getFieldValueSetter(c);
if (innerText != null && innerText.length() > 0)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, innerText);
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, new ConstantFieldValue(innerText));
}
allowed.add(TypeOccuranceInformation.of(XmlItemType.ANNOTATION, null, null));
allowed.add(TypeOccuranceInformation.of(XmlItemType.VALUE, null, null));
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -23,6 +23,7 @@
import java.lang.reflect.Method;
+import org.jboss.seam.xml.fieldset.ConstantFieldValue;
import org.jboss.seam.xml.fieldset.FieldValueObject;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.weld.extensions.util.properties.Properties;
@@ -43,7 +44,7 @@
this.property = Properties.createProperty(setter);
if (innerText != null && innerText.length() > 0)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, innerText);
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, new ConstantFieldValue(innerText));
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java 2010-08-01 10:07:24 UTC (rev 13539)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/ValueXmlItem.java 2010-08-01 12:05:49 UTC (rev 13540)
@@ -28,6 +28,9 @@
import javax.enterprise.inject.spi.BeanManager;
import org.jboss.seam.xml.core.BeanResult;
+import org.jboss.seam.xml.fieldset.ConstantFieldValue;
+import org.jboss.seam.xml.fieldset.FieldValue;
+import org.jboss.seam.xml.fieldset.InlineBeanFieldValue;
import org.jboss.seam.xml.fieldset.InlineBeanIdCreator;
import org.jboss.seam.xml.fieldset.InlineBeanQualifier;
import org.jboss.seam.xml.util.TypeOccuranceInformation;
@@ -35,7 +38,9 @@
public class ValueXmlItem extends AbstractXmlItem
{
- int syntheticQualifierId;
+ private int syntheticQualifierId;
+ private BeanResult<?> inlineBean;
+ private BeanManager manager;
public ValueXmlItem(XmlItem parent, String innerText, String document, int lineno)
{
@@ -49,6 +54,7 @@
public BeanResult<?> getBeanResult(BeanManager manager)
{
+ this.manager = manager;
List<ClassXmlItem> inlineBeans = getChildrenOfType(ClassXmlItem.class);
if (!inlineBeans.isEmpty())
{
@@ -63,8 +69,10 @@
syntheticQualifierId = InlineBeanIdCreator.getId();
AnnotationXmlItem syntheticQualifier = new AnnotationXmlItem(this, InlineBeanQualifier.class, "" + syntheticQualifierId, Collections.EMPTY_MAP, getDocument(), getLineno());
inline.addChild(syntheticQualifier);
- return inline.createBeanResult(manager);
+ inlineBean = inline.createBeanResult(manager);
+ return inlineBean;
}
+ inlineBean = null;
return null;
}
@@ -72,4 +80,16 @@
{
return syntheticQualifierId;
}
+
+ public FieldValue getValue()
+ {
+ if (inlineBean == null)
+ {
+ return new ConstantFieldValue(innerText);
+ }
+ else
+ {
+ return new InlineBeanFieldValue(syntheticQualifierId, manager);
+ }
+ }
}
13 years, 8 months
Seam SVN: r13539 - modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset.
by seam-commits@lists.jboss.org
Author: swd847
Date: 2010-08-01 06:07:24 -0400 (Sun, 01 Aug 2010)
New Revision: 13539
Modified:
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
Log:
more refactoring
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 09:50:28 UTC (rev 13538)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 10:07:24 UTC (rev 13539)
@@ -41,28 +41,18 @@
public class ArrayFieldSet implements FieldValueObject
{
final private Property field;
- final private List<AFS> values;
+ final private List<Object> values;
final private Class<?> arrayType;
public ArrayFieldSet(Property<?> field, List<ValueXmlItem> items)
{
this.field = field;
- this.values = new ArrayList<AFS>();
-
+ this.values = new ArrayList<Object>();
arrayType = field.getJavaClass().getComponentType();
- AFS setter;
for (XmlItem i : items)
{
- final Object fv = XmlObjectConverter.convert(arrayType, i.getInnerText());
- final Object val = fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.set(o, i, val);
- }
- };
- values.add(setter);
+ Object fv = XmlObjectConverter.convert(arrayType, i.getInnerText());
+ values.add(fv);
}
}
@@ -75,7 +65,7 @@
field.setValue(instance, array);
for (int i = 0; i < values.size(); ++i)
{
- values.get(i).set(array, i);
+ Array.set(array, i, values.get(i));
}
}
catch (Exception e)
@@ -83,10 +73,4 @@
throw new RuntimeException(e);
}
}
-
- interface AFS
- {
- void set(Object o, int i) throws IllegalAccessException;
- }
-
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 09:50:28 UTC (rev 13538)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 10:07:24 UTC (rev 13539)
@@ -53,14 +53,14 @@
public class CollectionFieldSet implements FieldValueObject
{
private final Property field;
- private final List<CFS> values;
+ private final List<Object> values;
private final Class<?> elementType;
private final Class<? extends Collection> collectionType;
public CollectionFieldSet(Property field, List<ValueXmlItem> items)
{
this.field = field;
- this.values = new ArrayList<CFS>();
+ this.values = new ArrayList<Object>();
Type type = field.getBaseType();
if (type instanceof ParameterizedType)
@@ -114,22 +114,11 @@
throw new RuntimeException("Could not determine element type for " + field.getDeclaringClass().getName() + "." + field.getName());
}
- CFS setter;
for (XmlItem i : items)
{
final Object fv = XmlObjectConverter.convert(elementType, i.getInnerText());
-
- setter = new CFS()
- {
- public void add(Collection<Object> o) throws IllegalAccessException
- {
- o.add(fv);
- }
- };
-
- values.add(setter);
+ values.add(fv);
}
-
}
public void setValue(Object instance, CreationalContext<?> ctx)
@@ -140,7 +129,7 @@
field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
- values.get(i).add(res);
+ res.add(values.get(i));
}
}
catch (Exception e)
@@ -149,9 +138,4 @@
}
}
- interface CFS
- {
- void add(Collection<Object> o) throws IllegalAccessException;
- }
-
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 09:50:28 UTC (rev 13538)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 10:07:24 UTC (rev 13539)
@@ -30,6 +30,7 @@
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+import java.util.Map.Entry;
import javax.enterprise.context.spi.CreationalContext;
@@ -48,7 +49,7 @@
public class MapFieldSet implements FieldValueObject
{
private final Property field;
- private final List<MFS> values;
+ private final List<Entry<Object, Object>> values;
private final Class<?> keyType;
private final Class<?> valueType;
private final Class<? extends Map> collectionType;
@@ -56,7 +57,7 @@
public MapFieldSet(Property field, List<EntryXmlItem> items)
{
this.field = field;
- this.values = new ArrayList<MFS>();
+ this.values = new ArrayList<Entry<Object, Object>>();
// figure out the collection type
Type type = field.getBaseType();
if (type instanceof ParameterizedType)
@@ -98,28 +99,12 @@
for (EntryXmlItem i : items)
{
- MFS setter;
final Object key = XmlObjectConverter.convert(keyType, i.getKey().getInnerText());
final Object value = XmlObjectConverter.convert(valueType, i.getValue().getInnerText());
- setter = new MFS()
- {
- @SuppressWarnings("unchecked")
- public void add(Map m) throws IllegalAccessException
- {
- m.put(key, value);
- }
- };
-
- values.add(setter);
+ values.add(new EntryImpl(key, value));
}
-
}
- public void discoverElementType()
- {
-
- }
-
public void setValue(Object instance, CreationalContext<?> ctx)
{
try
@@ -128,7 +113,8 @@
field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
- values.get(i).add(res);
+ Entry<Object, Object> e = values.get(i);
+ res.put(e.getKey(), e.getValue());
}
}
catch (Exception e)
@@ -137,9 +123,34 @@
}
}
- interface MFS
+ private final class EntryImpl implements Entry<Object, Object>
{
- void add(Map<?, ?> o) throws IllegalAccessException;
+ private Object key, value;
+
+ public EntryImpl(Object key, Object value)
+ {
+ this.key = key;
+ this.value = value;
+ }
+
+ public Object getKey()
+ {
+ return key;
+ }
+
+ public Object getValue()
+ {
+ return value;
+ }
+
+ public Object setValue(Object value)
+ {
+ return this.value = value;
+ }
+
+ public void setKey(Object key)
+ {
+ this.key = key;
+ }
}
-
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 09:50:28 UTC (rev 13538)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 10:07:24 UTC (rev 13539)
@@ -21,12 +21,8 @@
*/
package org.jboss.seam.xml.fieldset;
-import java.lang.reflect.InvocationTargetException;
-
import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.BeanManager;
-import org.jboss.seam.xml.model.ModelBuilder;
import org.jboss.seam.xml.util.XmlObjectConverter;
import org.jboss.weld.extensions.util.properties.Property;
@@ -35,46 +31,23 @@
private final Property field;
- private final FS setter;
+ private final Object value;
public SimpleFieldValue(Class<?> javaObject, final Property f, final String value)
{
this.field = f;
-
- Object fv = XmlObjectConverter.convert(f.getJavaClass(), value);
-
- final Object val = fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setValue(o, val);
- }
- };
-
+ this.value = XmlObjectConverter.convert(f.getJavaClass(), value);
}
- interface FS
- {
- void set(Object o) throws IllegalAccessException, InvocationTargetException;
- }
-
public void setValue(Object instance, CreationalContext<?> ctx)
{
try
{
- setter.set(instance);
+ field.setValue(instance, value);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
-
- public void initalize(ModelBuilder modelBuilder, BeanManager manager)
- {
- // TODO Auto-generated method stub
-
- }
-
}
13 years, 8 months
Seam SVN: r13538 - in modules/xml/trunk: examples/princess-rescue and 4 other directories.
by seam-commits@lists.jboss.org
Author: swd847
Date: 2010-08-01 05:50:28 -0400 (Sun, 01 Aug 2010)
New Revision: 13538
Removed:
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/DirectFieldSetter.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldTypeSetter.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueSetter.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MethodFieldSetter.java
Modified:
modules/xml/trunk/examples/princess-rescue/pom.xml
modules/xml/trunk/examples/princess-rescue/src/main/resources/META-INF/beans.xml
modules/xml/trunk/examples/princess-rescue/src/main/webapp/WEB-INF/web.xml
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java
modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java
modules/xml/trunk/pom.xml
Log:
change to using weld-extensions protperties
Modified: modules/xml/trunk/examples/princess-rescue/pom.xml
===================================================================
--- modules/xml/trunk/examples/princess-rescue/pom.xml 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/examples/princess-rescue/pom.xml 2010-08-01 09:50:28 UTC (rev 13538)
@@ -27,7 +27,6 @@
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
- <scope>provided</scope>
</dependency>
<dependency>
@@ -57,14 +56,21 @@
<artifactId>jsf-impl</artifactId>
<scope>runtime</scope>
</dependency>
- <!--
+
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<scope>runtime</scope>
</dependency>
- -->
+
<dependency>
+ <groupId>org.jboss.weld</groupId>
+ <artifactId>weld-extensions</artifactId>
+ <scope>runtime</scope>
+ <version>1.0.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<scope>runtime</scope>
Modified: modules/xml/trunk/examples/princess-rescue/src/main/resources/META-INF/beans.xml
===================================================================
--- modules/xml/trunk/examples/princess-rescue/src/main/resources/META-INF/beans.xml 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/examples/princess-rescue/src/main/resources/META-INF/beans.xml 2010-08-01 09:50:28 UTC (rev 13538)
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:s="urn:java:ee"
- xmlns:p="org.jboss.seam.xml.examples.princess"
- xsi:schemaLocation="
- http://java.sun.com/xml/ns/javaee
- http://docs.jboss.org/cdi/beans_1_0.xsd">
-
- <!-- Makes the Room annotation a qualifier -->
- <p:Room>
- <s:Qualifier/>
- </p:Room>
-
- <p:GameManager>
- <s:extends/>
- <p:allRooms>
- <s:Any/>
- <s:Inject/>
- </p:allRooms>
- <p:emptyRoomShootMessage>Your arrow does not appear to hit anything.</p:emptyRoomShootMessage>
- <p:startMessage>You enter the dungeon, with you bow in your hand and your heart in your mouth.</p:startMessage>
- <p:startRoom>
- <!-- Inject the starting room -->
- <s:Inject/>
- <p:Room>startRoom</p:Room>
- </p:startRoom>
- </p:GameManager>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room value="startRoom"/>
- <p:north><s:Inject/><p:Room>emptyRoom1</p:Room></p:north>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom1</p:Room>
- <p:north><s:Inject/><p:Room>emptyRoom3</p:Room></p:north>
- <p:west><s:Inject/><p:Room>dwarfRoom</p:Room></p:west>
- <p:east><s:Inject/><p:Room>pitRoom1</p:Room></p:east>
- <p:south><s:Inject/><p:Room>startRoom</p:Room></p:south>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>dwarfRoom</p:Room>
- <p:roomType>MONSTER</p:roomType>
- <p:shootEffect>KILL</p:shootEffect>
- <p:adjacentMessage>You hear drunken singing.</p:adjacentMessage>
- <p:message>You find a drunken dwarven miner. He belches in your direction, falls over, then seems to forget you are there.</p:message>
- <p:shootMessage>You hear a 'Thud', followed by a surprised yell.</p:shootMessage>
- <p:killedRoomMessage>You find a dead dwarven miner with something that looks suspiciously like one of your arrows sticking out of his chest. Probably best you don't mention this to anyone...</p:killedRoomMessage>
- <p:east><s:Inject/><p:Room>emptyRoom1</p:Room></p:east>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>pitRoom1</p:Room>
- <p:roomType>GAMEOVER</p:roomType>
- <p:adjacentMessage>You feel a breeze.</p:adjacentMessage>
- <p:message>You fall into a bottomless pit. Game Over. </p:message>
- <p:west><s:Inject/><p:Room>emptyRoom1</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom2</p:Room>
- <p:north><s:Inject/><p:Room>emptyRoom4</p:Room></p:north>
- <p:west><s:Inject/><p:Room>pitRoom1</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom3</p:Room>
- <p:north><s:Inject/><p:Room>pitRoom2</p:Room></p:north>
- <p:east><s:Inject/><p:Room>batRoom</p:Room></p:east>
- <p:south><s:Inject/><p:Room>emptyRoom1</p:Room></p:south>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>batRoom</p:Room>
- <p:adjacentMessage>You hear a screeching noise.</p:adjacentMessage>
- <p:message>A swarm of bats lands on you and tries to pick you up. They fail miserably. You swat them away with your bow.</p:message>
- <p:shootMessage>You seem to have disturbed some bats, they fly past your head in the dark.</p:shootMessage>
- <p:north><s:Inject/><p:Room>emptyRoom6</p:Room></p:north>
- <p:east><s:Inject/><p:Room>emptyRoom4</p:Room></p:east>
- <p:south><s:Inject/><p:Room>pitRoom1</p:Room></p:south>
- <p:west><s:Inject/><p:Room>emptyRoom3</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom4</p:Room>
- <p:east><s:Inject/><p:Room>emptyRoom5</p:Room></p:east>
- <p:south><s:Inject/><p:Room>emptyRoom2</p:Room></p:south>
- <p:west><s:Inject/><p:Room>batRoom</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom5</p:Room>
- <p:north><s:Inject/><p:Room>emptyRoom7</p:Room></p:north>
- <p:east><s:Inject/><p:Room>dragonRoom</p:Room></p:east>
- <p:west><s:Inject/><p:Room>emptyRoom4</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>dragonRoom</p:Room>
- <p:adjacentMessage>You hear a snoring noise. With every snore you see a flickering light, as if something were breathing flames from its nostrils.</p:adjacentMessage>
- <p:roomType>GAMEOVER</p:roomType>
- <p:message>The dragon wakes up as you enter. Then it eats you.</p:message>
- <p:shootEffect>ANNOY</p:shootEffect>
- <p:shootMessage>Your arrow wakes up the dragon, without appearing to do any real damage. The last moments of your life are spent running from an angry dragon.</p:shootMessage>
- <p:north><s:Inject/><p:Room>princessRoom</p:Room></p:north>
- <p:west><s:Inject/><p:Room>emptyRoom5</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>pitRoom2</p:Room>
- <p:roomType>GAMEOVER</p:roomType>
- <p:adjacentMessage>You feel a breeze.</p:adjacentMessage>
- <p:message>You fall into a bottomless pit. Game Over. </p:message>
- <p:south><s:Inject/><p:Room>emptyRoom3</p:Room></p:south>
- <p:east><s:Inject/><p:Room>emptyRoom6</p:Room></p:east>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom6</p:Room>
- <p:north><s:Inject/><p:Room>emptyRoom8</p:Room></p:north>
- <p:west><s:Inject/><p:Room>pitRoom2</p:Room></p:west>
- <p:south><s:Inject/><p:Room>batRoom</p:Room></p:south>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom7</p:Room>
- <p:north><s:Inject/><p:Room>emptyRoom10</p:Room></p:north>
- <p:east><s:Inject/><p:Room>princessRoom</p:Room></p:east>
- <p:south><s:Inject/><p:Room>emptyRoom5</p:Room></p:south>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>princessRoom</p:Room>
- <p:adjacentMessage>You hear a sobbing noise.</p:adjacentMessage>
- <p:roomType>GAMEOVER</p:roomType>
- <p:message>You find the princess and quickly free her, and then escape from the dungeon. You both live happily ever after.</p:message>
- <p:shootEffect>ANNOY</p:shootEffect>
- <p:shootMessage>Your arrow clatters against the wall. You hear a cry 'Help i'm being shot at'. The cry wakes the dragon in the room next door, which promptly eats you.</p:shootMessage>
- <p:south><s:Inject/><p:Room>dragonRoom</p:Room></p:south>
- <p:west><s:Inject/><p:Room>emptyRoom7</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom8</p:Room>
- <p:east><s:Inject/><p:Room>emptyRoom9</p:Room></p:east>
- <p:south><s:Inject/><p:Room>emptyRoom6</p:Room></p:south>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom9</p:Room>
- <p:north><s:Inject/><p:Room>wumpusRoom</p:Room></p:north>
- <p:east><s:Inject/><p:Room>emptyRoom10</p:Room></p:east>
- <p:west><s:Inject/><p:Room>emptyRoom8</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:Room>emptyRoom10</p:Room>
- <p:south><s:Inject/><p:Room>emptyRoom7</p:Room></p:south>
- <p:west><s:Inject/><p:Room>emptyRoom9</p:Room></p:west>
- </p:GameRoom>
-
- <p:GameRoom>
- <s:SessionScoped/>
- <p:roomType>MONSTER</p:roomType>
- <p:adjacentMessage>You smell a Wumpus</p:adjacentMessage>
- <p:shootMessage>You hear a 'Thud', followed by a roar of pain.</p:shootMessage>
- <p:killedRoomMessage>You stumbe accross a dead Wumpus. Well that wasn't so hard...</p:killedRoomMessage>
- <p:message>You find a Wumpus. It eats you.</p:message>
- <p:shootEffect>KILL</p:shootEffect>
- <p:Room>wumpusRoom</p:Room>
- <p:south><s:Inject/><p:Room>emptyRoom9</p:Room></p:south>
- </p:GameRoom>
-
-
-</beans>
Modified: modules/xml/trunk/examples/princess-rescue/src/main/webapp/WEB-INF/web.xml
===================================================================
--- modules/xml/trunk/examples/princess-rescue/src/main/webapp/WEB-INF/web.xml 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/examples/princess-rescue/src/main/webapp/WEB-INF/web.xml 2010-08-01 09:50:28 UTC (rev 13538)
@@ -26,12 +26,18 @@
<param-value>true</param-value>
</context-param>
+ <listener>
+ <listener-class>org.jboss.weld.extensions.resourceLoader.servlet.ResourceListener</listener-class>
+ </listener>
+
<!-- Weld Jetty/Tomcat specific configuration parameters -->
<!-- *** The <listener> and <resource-env-ref> elements can be deleted when running in a Java EE 6 container *** -->
<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
+
+
<resource-env-ref>
<description>Object factory for the CDI Bean Manager</description>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/ArrayFieldSet.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -30,6 +30,7 @@
import org.jboss.seam.xml.model.ValueXmlItem;
import org.jboss.seam.xml.model.XmlItem;
import org.jboss.seam.xml.util.XmlObjectConverter;
+import org.jboss.weld.extensions.util.properties.Property;
/**
* class responsible for setting the value of array properties.
@@ -39,109 +40,28 @@
*/
public class ArrayFieldSet implements FieldValueObject
{
- final private FieldValueSetter field;
+ final private Property field;
final private List<AFS> values;
- final private Class arrayType;
+ final private Class<?> arrayType;
- public ArrayFieldSet(FieldValueSetter field, List<ValueXmlItem> items)
+ public ArrayFieldSet(Property<?> field, List<ValueXmlItem> items)
{
this.field = field;
this.values = new ArrayList<AFS>();
- arrayType = field.getType().getComponentType();
+ arrayType = field.getJavaClass().getComponentType();
AFS setter;
for (XmlItem i : items)
{
final Object fv = XmlObjectConverter.convert(arrayType, i.getInnerText());
- if (field.getType() == char.class)
+ final Object val = fv;
+ setter = new AFS()
{
-
- final char val = (Character) fv;
- setter = new AFS()
+ public void set(Object o, int i) throws IllegalAccessException
{
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setChar(o, i, val);
- }
- };
- }
- else if (field.getType() == int.class)
- {
- final int val = (Integer) fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setInt(o, i, val);
- }
- };
- }
- else if (field.getType() == short.class)
- {
- final short val = (Short) fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setShort(o, i, val);
- }
- };
- }
- else if (field.getType() == long.class)
- {
- final long val = (Long) fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setLong(o, i, val);
- }
- };
- }
- else if (field.getType() == byte.class)
- {
- final byte val = (Byte) fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setByte(o, i, val);
- }
- };
- }
- else if (field.getType() == double.class)
- {
- final double val = (Double) fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setDouble(o, i, val);
- }
- };
- }
- else if (field.getType() == float.class)
- {
- final float val = (Float) fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.setFloat(o, i, val);
- }
- };
- }
- else
- {
- final Object val = fv;
- setter = new AFS()
- {
- public void set(Object o, int i) throws IllegalAccessException
- {
- Array.set(o, i, val);
- }
- };
- }
+ Array.set(o, i, val);
+ }
+ };
values.add(setter);
}
@@ -152,7 +72,7 @@
try
{
Object array = Array.newInstance(arrayType, values.size());
- field.set(instance, array);
+ field.setValue(instance, array);
for (int i = 0; i < values.size(); ++i)
{
values.get(i).set(array, i);
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/CollectionFieldSet.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -39,6 +39,7 @@
import org.jboss.seam.xml.model.XmlItem;
import org.jboss.seam.xml.util.TypeReader;
import org.jboss.seam.xml.util.XmlObjectConverter;
+import org.jboss.weld.extensions.util.properties.Property;
/**
* class responsible for setting the value of collection properties.
@@ -51,17 +52,17 @@
*/
public class CollectionFieldSet implements FieldValueObject
{
- private final FieldValueSetter field;
+ private final Property field;
private final List<CFS> values;
private final Class<?> elementType;
private final Class<? extends Collection> collectionType;
- public CollectionFieldSet(FieldValueSetter field, List<ValueXmlItem> items)
+ public CollectionFieldSet(Property field, List<ValueXmlItem> items)
{
this.field = field;
this.values = new ArrayList<CFS>();
- Type type = field.getGenericType();
+ Type type = field.getBaseType();
if (type instanceof ParameterizedType)
{
ParameterizedType parameterizedType = (ParameterizedType) type;
@@ -136,7 +137,7 @@
try
{
Collection<Object> res = collectionType.newInstance();
- field.set(instance, res);
+ field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
values.get(i).add(res);
Deleted: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/DirectFieldSetter.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/DirectFieldSetter.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/DirectFieldSetter.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -1,110 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.xml.fieldset;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Type;
-
-/**
- * class that can set a field value directly
- *
- * @author Stuart Douglas <stuart(a)baileyroberts.com.au>
- *
- */
-public class DirectFieldSetter implements FieldValueSetter
-{
-
- private final Field field;
-
- public DirectFieldSetter(Field field)
- {
- this.field = field;
- field.setAccessible(true);
- }
-
- public void set(Object instance, Object value) throws IllegalAccessException
- {
- field.set(instance, value);
- }
-
- public Type getGenericType()
- {
- return field.getGenericType();
- }
-
- public Class<?> getType()
- {
- return field.getType();
- }
-
- public String getName()
- {
- return field.getName();
- }
-
- public Class<?> getDeclaringClass()
- {
- return field.getDeclaringClass();
- }
-
- public void setBoolean(Object instance, boolean value) throws IllegalAccessException, InvocationTargetException
- {
- field.setBoolean(instance, value);
- }
-
- public void setByte(Object instance, byte value) throws IllegalAccessException, InvocationTargetException
- {
- field.setByte(instance, value);
- }
-
- public void setChar(Object instance, char value) throws IllegalAccessException, InvocationTargetException
- {
- field.setChar(instance, value);
- }
-
- public void setDouble(Object instance, double value) throws IllegalAccessException, InvocationTargetException
- {
- field.setDouble(instance, value);
- }
-
- public void setFloat(Object instance, float value) throws IllegalAccessException, InvocationTargetException
- {
- field.setFloat(instance, value);
- }
-
- public void setInt(Object instance, int value) throws IllegalAccessException, InvocationTargetException
- {
- field.setInt(instance, value);
- }
-
- public void setLong(Object instance, long value) throws IllegalAccessException, InvocationTargetException
- {
- field.setLong(instance, value);
- }
-
- public void setShort(Object instance, short value) throws IllegalAccessException, InvocationTargetException
- {
- field.setShort(instance, value);
- }
-
-}
Deleted: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldTypeSetter.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldTypeSetter.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldTypeSetter.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -1,37 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.xml.fieldset;
-
-import java.lang.reflect.Field;
-
-/**
- * Interface the can set primitive types
- *
- * @author Stuart Douglas <stuart(a)baileyroberts.com.au>
- *
- */
-public interface FieldTypeSetter
-{
-
- public void setField(String value, Field field);
-
-}
Deleted: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueSetter.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueSetter.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/FieldValueSetter.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.xml.fieldset;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Type;
-
-/**
- * Class that knows how to set a field value, either directly or by calling a
- * getter
- *
- * @author Stuart Douglas <stuart(a)baileyroberts.com.au>
- *
- */
-public interface FieldValueSetter
-{
-
- public void set(Object instance, Object value) throws IllegalAccessException, InvocationTargetException;
-
- public Class<?> getType();
-
- public Type getGenericType();
-
- public Class<?> getDeclaringClass();
-
- public String getName();
-
- public void setInt(Object instance, int value) throws IllegalAccessException, InvocationTargetException;
-
- public void setShort(Object instance, short value) throws IllegalAccessException, InvocationTargetException;
-
- public void setLong(Object instance, long value) throws IllegalAccessException, InvocationTargetException;
-
- public void setByte(Object instance, byte value) throws IllegalAccessException, InvocationTargetException;
-
- public void setChar(Object instance, char value) throws IllegalAccessException, InvocationTargetException;
-
- public void setDouble(Object instance, double value) throws IllegalAccessException, InvocationTargetException;
-
- public void setFloat(Object instance, float value) throws IllegalAccessException, InvocationTargetException;
-
- public void setBoolean(Object instance, boolean value) throws IllegalAccessException, InvocationTargetException;
-
-}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/InlineBeanFieldValue.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -25,6 +25,8 @@
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
+import org.jboss.weld.extensions.util.properties.Property;
+
/**
* Field value object for an inline bean definition
*
@@ -34,7 +36,7 @@
public class InlineBeanFieldValue implements FieldValueObject
{
- private final FieldValueSetter field;
+ private final Property field;
private final int beanId;
@@ -46,7 +48,7 @@
private Bean<?> bean;
- public InlineBeanFieldValue(Class<?> type, int syntheticBeanQualifierNo, FieldValueSetter setter, BeanManager manager)
+ public InlineBeanFieldValue(Class<?> type, int syntheticBeanQualifierNo, Property setter, BeanManager manager)
{
this.beanId = syntheticBeanQualifierNo;
this.field = setter;
@@ -64,7 +66,7 @@
Object obj = manager.getReference(bean, type, ctx);
try
{
- field.set(instance, obj);
+ field.setValue(instance, obj);
}
catch (Exception e)
{
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MapFieldSet.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -36,6 +36,7 @@
import org.jboss.seam.xml.model.EntryXmlItem;
import org.jboss.seam.xml.util.TypeReader;
import org.jboss.seam.xml.util.XmlObjectConverter;
+import org.jboss.weld.extensions.util.properties.Property;
/**
* class responsible for setting the value of map properties.
@@ -46,18 +47,18 @@
*/
public class MapFieldSet implements FieldValueObject
{
- private final FieldValueSetter field;
+ private final Property field;
private final List<MFS> values;
private final Class<?> keyType;
private final Class<?> valueType;
private final Class<? extends Map> collectionType;
- public MapFieldSet(FieldValueSetter field, List<EntryXmlItem> items)
+ public MapFieldSet(Property field, List<EntryXmlItem> items)
{
this.field = field;
this.values = new ArrayList<MFS>();
// figure out the collection type
- Type type = field.getGenericType();
+ Type type = field.getBaseType();
if (type instanceof ParameterizedType)
{
ParameterizedType parameterizedType = (ParameterizedType) type;
@@ -124,7 +125,7 @@
try
{
Map res = collectionType.newInstance();
- field.set(instance, res);
+ field.setValue(instance, res);
for (int i = 0; i < values.size(); ++i)
{
values.get(i).add(res);
Deleted: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MethodFieldSetter.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MethodFieldSetter.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/MethodFieldSetter.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -1,108 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.xml.fieldset;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-
-/**
- * class that sets a field value by calling a setter method
- *
- * @author Stuart Douglas <stuart(a)baileyroberts.com.au>
- *
- */
-public class MethodFieldSetter implements FieldValueSetter
-{
- private final Method method;
-
- public MethodFieldSetter(Method method)
- {
- this.method = method;
- }
-
- public void set(Object instance, Object value) throws IllegalAccessException, InvocationTargetException
- {
- method.invoke(instance, value);
- }
-
- public Type getGenericType()
- {
- return method.getGenericParameterTypes()[0];
- }
-
- public String getName()
- {
- return method.getName();
- }
-
- public Class<?> getDeclaringClass()
- {
- return method.getDeclaringClass();
- }
-
- public Class<?> getType()
- {
- return method.getParameterTypes()[0];
- }
-
- public void setBoolean(Object instance, boolean value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setByte(Object instance, byte value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setChar(Object instance, char value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setDouble(Object instance, double value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setFloat(Object instance, float value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setInt(Object instance, int value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setLong(Object instance, long value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
- public void setShort(Object instance, short value) throws IllegalAccessException, InvocationTargetException
- {
- set(instance, value);
- }
-
-}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/fieldset/SimpleFieldValue.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -28,119 +28,30 @@
import org.jboss.seam.xml.model.ModelBuilder;
import org.jboss.seam.xml.util.XmlObjectConverter;
+import org.jboss.weld.extensions.util.properties.Property;
public class SimpleFieldValue implements FieldValueObject
{
- private final FieldValueSetter field;
+ private final Property field;
private final FS setter;
- public SimpleFieldValue(Class<?> javaObject, final FieldValueSetter f, final String value)
+ public SimpleFieldValue(Class<?> javaObject, final Property f, final String value)
{
this.field = f;
- Object fv = XmlObjectConverter.convert(f.getType(), value);
- if (field.getType() == char.class)
- {
+ Object fv = XmlObjectConverter.convert(f.getJavaClass(), value);
- final char val = (Character) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setChar(o, val);
- }
- };
- }
- else if (field.getType() == int.class)
+ final Object val = fv;
+ setter = new FS()
{
- final int val = (Integer) fv;
- setter = new FS()
+ public void set(Object o) throws IllegalAccessException, InvocationTargetException
{
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setInt(o, val);
- }
- };
- }
- else if (field.getType() == short.class)
- {
- final short val = (Short) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setShort(o, val);
- }
- };
- }
- else if (field.getType() == long.class)
- {
- final long val = (Long) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setLong(o, val);
- }
- };
- }
- else if (field.getType() == byte.class)
- {
- final byte val = (Byte) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setByte(o, val);
- }
- };
- }
- else if (field.getType() == double.class)
- {
- final double val = (Double) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setDouble(o, val);
- }
- };
- }
- else if (field.getType() == float.class)
- {
- final float val = (Float) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setFloat(o, val);
- }
- };
- }
- else if (field.getType() == boolean.class)
- {
- final boolean val = (Boolean) fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.setBoolean(o, val);
- }
- };
- }
- else
- {
- final Object val = fv;
- setter = new FS()
- {
- public void set(Object o) throws IllegalAccessException, InvocationTargetException
- {
- field.set(o, val);
- }
- };
- }
+ field.setValue(o, val);
+ }
+ };
+
}
interface FS
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/AbstractFieldXmlItem.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -34,12 +34,12 @@
import org.jboss.seam.xml.fieldset.ArrayFieldSet;
import org.jboss.seam.xml.fieldset.CollectionFieldSet;
import org.jboss.seam.xml.fieldset.FieldValueObject;
-import org.jboss.seam.xml.fieldset.FieldValueSetter;
import org.jboss.seam.xml.fieldset.InlineBeanFieldValue;
import org.jboss.seam.xml.fieldset.MapFieldSet;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.seam.xml.util.TypeOccuranceInformation;
import org.jboss.seam.xml.util.XmlConfigurationException;
+import org.jboss.weld.extensions.util.properties.Property;
/**
* represents either a field or a property of a bean
@@ -50,7 +50,7 @@
public abstract class AbstractFieldXmlItem extends AbstractXmlItem
{
- protected FieldValueSetter fieldSetter;
+ protected Property property;
protected FieldValueObject fieldValue;
protected HashSet<TypeOccuranceInformation> allowed = new HashSet<TypeOccuranceInformation>();
List<BeanResult<?>> inlineBeans = new ArrayList<BeanResult<?>>();
@@ -95,7 +95,7 @@
}
if (!mapEntries.isEmpty())
{
- fieldValue = new MapFieldSet(fieldSetter, mapEntries);
+ fieldValue = new MapFieldSet(property, mapEntries);
}
}
else if (Collection.class.isAssignableFrom(getFieldType()) || getFieldType().isArray())
@@ -108,11 +108,11 @@
{
if (getFieldType().isArray())
{
- fieldValue = new ArrayFieldSet(fieldSetter, valueEntries);
+ fieldValue = new ArrayFieldSet(property, valueEntries);
}
else
{
- fieldValue = new CollectionFieldSet(fieldSetter, valueEntries);
+ fieldValue = new CollectionFieldSet(property, valueEntries);
}
}
}
@@ -130,12 +130,12 @@
BeanResult<?> result = value.getBeanResult(manager);
if (result == null)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), fieldSetter, valueEntries.get(0).getInnerText());
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, valueEntries.get(0).getInnerText());
}
else
{
inlineBeans.add(result);
- fieldValue = new InlineBeanFieldValue(getFieldType(), value.getSyntheticQualifierId(), fieldSetter, manager);
+ fieldValue = new InlineBeanFieldValue(getFieldType(), value.getSyntheticQualifierId(), property, manager);
}
}
}
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/FieldXmlItem.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -24,11 +24,10 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import org.jboss.seam.xml.fieldset.DirectFieldSetter;
-import org.jboss.seam.xml.fieldset.FieldValueSetter;
-import org.jboss.seam.xml.fieldset.MethodFieldSetter;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
import org.jboss.seam.xml.util.TypeOccuranceInformation;
+import org.jboss.weld.extensions.util.properties.Properties;
+import org.jboss.weld.extensions.util.properties.Property;
public class FieldXmlItem extends AbstractFieldXmlItem
{
@@ -39,10 +38,10 @@
{
super(XmlItemType.FIELD, parent, parent.getJavaClass(), innerText, null, document, lineno);
this.field = c;
- this.fieldSetter = getFieldValueSetter(c);
+ this.property = getFieldValueSetter(c);
if (innerText != null && innerText.length() > 0)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), fieldSetter, innerText);
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, innerText);
}
allowed.add(TypeOccuranceInformation.of(XmlItemType.ANNOTATION, null, null));
allowed.add(TypeOccuranceInformation.of(XmlItemType.VALUE, null, null));
@@ -54,7 +53,7 @@
return field;
}
- private FieldValueSetter getFieldValueSetter(Field field)
+ private Property getFieldValueSetter(Field field)
{
String fieldName = field.getName();
String methodName = "set" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1);
@@ -73,9 +72,9 @@
}
if (setter != null)
{
- return new MethodFieldSetter(setter);
+ return Properties.createProperty(setter);
}
- return new DirectFieldSetter(field);
+ return Properties.createProperty(field);
}
@Override
Modified: modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java
===================================================================
--- modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/impl/src/main/java/org/jboss/seam/xml/model/PropertyXmlItem.java 2010-08-01 09:50:28 UTC (rev 13538)
@@ -24,8 +24,8 @@
import java.lang.reflect.Method;
import org.jboss.seam.xml.fieldset.FieldValueObject;
-import org.jboss.seam.xml.fieldset.MethodFieldSetter;
import org.jboss.seam.xml.fieldset.SimpleFieldValue;
+import org.jboss.weld.extensions.util.properties.Properties;
public class PropertyXmlItem extends AbstractFieldXmlItem
{
@@ -40,10 +40,10 @@
this.name = name;
this.type = setter.getParameterTypes()[0];
this.declaringClass = setter.getDeclaringClass();
- this.fieldSetter = new MethodFieldSetter(setter);
+ this.property = Properties.createProperty(setter);
if (innerText != null && innerText.length() > 0)
{
- fieldValue = new SimpleFieldValue(parent.getJavaClass(), fieldSetter, innerText);
+ fieldValue = new SimpleFieldValue(parent.getJavaClass(), property, innerText);
}
}
Modified: modules/xml/trunk/pom.xml
===================================================================
--- modules/xml/trunk/pom.xml 2010-07-31 01:13:09 UTC (rev 13537)
+++ modules/xml/trunk/pom.xml 2010-08-01 09:50:28 UTC (rev 13538)
@@ -16,6 +16,7 @@
<properties>
<seam.version>3.0.0.b01</seam.version>
+ <weld-extensions.version>1.0.0-SNAPSHOT</weld-extensions.version>
</properties>
<prerequisites>
@@ -44,6 +45,12 @@
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.jboss.weld</groupId>
+ <artifactId>weld-extensions</artifactId>
+ <version>${weld-extensions.version}</version>
+ </dependency>
+
</dependencies>
</dependencyManagement>
13 years, 8 months