You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2007/03/07 17:57:29 UTC
svn commit: r515644 - in
/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi:
model/Property.java model/PropertyValue.java util/stax/StaxUtil.java
Author: svkrish
Date: Wed Mar 7 08:57:26 2007
New Revision: 515644
URL: http://svn.apache.org/viewvc?view=rev&rev=515644
Log:
added support for many simple property values and changed property values from a list of documents to a list of Elements
Modified:
incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java
incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java?view=diff&rev=515644&r1=515643&r2=515644
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Property.java Wed Mar 7 08:57:26 2007
@@ -22,9 +22,8 @@
import javax.xml.namespace.QName;
-import org.w3c.dom.Document;
-
import org.apache.tuscany.spi.ObjectFactory;
+import org.w3c.dom.Element;
/**
* A component property
@@ -39,7 +38,7 @@
private Class<T> javaType;
private boolean many;
private boolean mustSupply;
- private List<Document> defaultValues;
+ private List<Element> defaultValues;
public Property() {
@@ -123,11 +122,11 @@
this.xmlElement = xmlElement;
}
- public List<Document> getDefaultValues() {
+ public List<Element> getDefaultValues() {
return defaultValues;
}
- public void setDefaultValues(List<Document> defaultValues) {
+ public void setDefaultValues(List<Element> defaultValues) {
this.defaultValues = defaultValues;
}
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java?view=diff&rev=515644&r1=515643&r2=515644
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/PropertyValue.java Wed Mar 7 08:57:26 2007
@@ -21,7 +21,7 @@
import java.util.List;
import org.apache.tuscany.spi.ObjectFactory;
-import org.w3c.dom.Document;
+import org.w3c.dom.Element;
/**
* Represents a configured component property
@@ -31,7 +31,7 @@
private String name;
private String source;
private String file;
- private List<Document> value;
+ private List<Element> value;
private ObjectFactory<?> valueFactory;
public PropertyValue() {
@@ -54,7 +54,7 @@
* @param name
* @param value
*/
- public PropertyValue(String name, List<Document> value) {
+ public PropertyValue(String name, List<Element> value) {
this.name = name;
this.value = value;
}
@@ -110,11 +110,11 @@
}
- public List<Document> getValue() {
+ public List<Element> getValue() {
return value;
}
- public void setValue(List<Document> value) {
+ public void setValue(List<Element> value) {
this.value = value;
}
Modified: incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java?view=diff&rev=515644&r1=515643&r2=515644
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java (original)
+++ incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java Wed Mar 7 08:57:26 2007
@@ -35,8 +35,6 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import org.apache.tuscany.spi.databinding.SimpleTypeMapper;
-import org.apache.tuscany.spi.databinding.extension.DOMHelper;
import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension;
import org.apache.tuscany.spi.model.InteractionScope;
import org.apache.tuscany.spi.model.Multiplicity;
@@ -98,20 +96,23 @@
}
}
- public static List<Document> createPropertyValues(XMLStreamReader reader,
+ public static List<Element> createPropertyValues(XMLStreamReader reader,
QName type,
QName element,
+ boolean many,
DocumentBuilder builder) throws XMLStreamException {
final QName PROPERTY = new QName(SCA_NS, "property");
- List<Document> propertyValues = new ArrayList<Document>();
- Document value = null;
+ List<Element> propertyValues = new ArrayList<Element>();
+ Document ownerDocument = builder.newDocument();
+ Element value = null;
do {
- value = StaxUtil.createPropertyValue(reader, type, element, builder);
+ value = StaxUtil.createPropertyValue(reader, type, element, many, ownerDocument);
if (value != null) {
propertyValues.add(value);
}
} while (!PROPERTY.equals(reader.getName()));
+
return propertyValues;
}
@@ -142,30 +143,31 @@
}
- public static Document createPropertyValue(XMLStreamReader reader,
+ public static Element createPropertyValue(XMLStreamReader reader,
QName type,
QName element,
- DocumentBuilder builder
+ boolean many,
+ Document document
) throws XMLStreamException {
- Document doc = null;
if (element == null && type != null && SimpleTypeMapperExtension.isSimpleXSDType(type)) {
- doc = builder.newDocument();
- // root element has no namespace and local name "value"
- Element root = createDefaultRootElement(type, doc);
- doc.appendChild(root);
- loadPropertyValue(reader, root, doc);
- if (!isValueDefined(root)) {
- return null;
- }
-
+ if (many) {
+ //if property is 'many' then each simple value is enclosed within an element
+ //with local name 'value' FIXME :(an assumption for now until specs is clear on this
+ return loadPropertyValue(reader, null, document);
+ } else {
+ // root element has no namespace and local name "value"
+ Element root = createDefaultRootElement(type, document);
+ //doc.appendChild(root);
+ loadPropertyValue(reader, root, document);
+ if (!isValueDefined(root)) {
+ return null;
+ } else {
+ return root;
+ }
+ }
} else {
- doc = builder.newDocument();
- loadPropertyValue(reader, null, doc);
- if (doc.getChildNodes().getLength() == 0) {
- return null;
- }
+ return loadPropertyValue(reader, null, document);
}
- return doc;
}
@@ -190,7 +192,7 @@
* @param reader the stream to read from
* @param root the DOM node to load
*/
- public static void loadPropertyValue(XMLStreamReader reader, Node root, Document document) throws XMLStreamException {
+ public static Element loadPropertyValue(XMLStreamReader reader, Element root, Document document) throws XMLStreamException {
Node current = root;
while (true) {
switch (reader.next()) {
@@ -211,7 +213,6 @@
// push the new element and make it the current one
if (root == null) {
- document.appendChild(child);
root = child;
} else {
current.appendChild(child);
@@ -232,7 +233,7 @@
case XMLStreamConstants.END_ELEMENT:
// if we are back at the root then we are done
if (current == root) {
- return;
+ return root;
}
// pop the element off the stack
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org