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