You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2008/05/29 19:24:19 UTC

svn commit: r661410 [2/2] - in /incubator/tuscany/java/sca/modules: core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/processor/ core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/transformers/ databinding-axiom...

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/WrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/WrapperHandler.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/WrapperHandler.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/WrapperHandler.java Thu May 29 10:24:18 2008
@@ -62,14 +62,13 @@
                        TransformationContext context);
 
     /**
-     * Set child element for the wrapper
-     * 
-     * @param wrapper The wrapper
-     * @param i The index
-     * @param childElement The XSD element
-     * @param value The value of the child
+     * Populate the wrapper element with the child objects
+     * @param wrapper
+     * @param childElements
+     * @param childObjects
+     * @param context
      */
-    void setChild(T wrapper, int i, ElementInfo childElement, Object value);
+    public void setChildren(T wrapper, List<ElementInfo> childElements, Object[] childObjects, TransformationContext context);
 
     /**
      * Get a list of child elements from the wrapper

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/BaseDataBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/BaseDataBinding.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/BaseDataBinding.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/BaseDataBinding.java Thu May 29 10:24:18 2008
@@ -23,6 +23,7 @@
 import org.apache.tuscany.sca.databinding.DataBinding;
 import org.apache.tuscany.sca.databinding.SimpleTypeMapper;
 import org.apache.tuscany.sca.databinding.WrapperHandler;
+import org.apache.tuscany.sca.databinding.XMLTypeHelper;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
 import org.apache.tuscany.sca.interfacedef.util.XMLType;
@@ -121,8 +122,8 @@
         return new SimpleTypeMapperImpl();
     }
 
-    public Class getXMLTypeHelperClass() {
-        return JAXBTypeHelper.class;
+    public XMLTypeHelper getXMLTypeHelper() {
+        return null;
     }
 
     public String[] getAliases() {

Modified: incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java (original)
+++ incubator/tuscany/java/sca/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java Thu May 29 10:24:18 2008
@@ -55,6 +55,15 @@
         }
     }
 
+    public void setChildren(Node wrapper,
+                            List<ElementInfo> childElements,
+                            Object[] childObjects,
+                            TransformationContext context) {
+        for (int i = 0; i < childElements.size(); i++) {
+            setChild(wrapper, i, childElements.get(i), childObjects[i]);
+        }
+
+    }
     public void setChild(Node wrapper, int i, ElementInfo childElement, Object value) {
         Node node = (Node)value;
         if (node.getNodeType() == Node.DOCUMENT_NODE) {

Modified: incubator/tuscany/java/sca/modules/interface-wsdl-java2wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/interface2wsdl/Interface2WSDLGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-java2wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/interface2wsdl/Interface2WSDLGenerator.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-java2wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/interface2wsdl/Interface2WSDLGenerator.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-java2wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/interface2wsdl/Interface2WSDLGenerator.java Thu May 29 10:24:18 2008
@@ -19,20 +19,18 @@
 
 package org.apache.tuscany.sca.interfacedef.wsdl.interface2wsdl;
 
-import java.io.PrintWriter;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import javax.wsdl.Binding;
 import javax.wsdl.BindingOperation;
 import javax.wsdl.Definition;
-import javax.wsdl.Input;
 import javax.wsdl.Fault;
+import javax.wsdl.Input;
 import javax.wsdl.Message;
 import javax.wsdl.OperationType;
 import javax.wsdl.Output;
@@ -41,9 +39,7 @@
 import javax.wsdl.Types;
 import javax.wsdl.WSDLException;
 import javax.wsdl.extensions.schema.Schema;
-import javax.wsdl.extensions.schema.SchemaImport;
 import javax.wsdl.factory.WSDLFactory;
-import javax.xml.bind.JAXBContext;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -52,7 +48,7 @@
 import org.apache.tuscany.sca.databinding.DataBinding;
 import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
 import org.apache.tuscany.sca.databinding.XMLTypeHelper;
-import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
+import org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Interface;
 import org.apache.tuscany.sca.interfacedef.Operation;
@@ -61,31 +57,18 @@
 import org.apache.tuscany.sca.interfacedef.util.ElementInfo;
 import org.apache.tuscany.sca.interfacedef.util.JavaXMLMapper;
 import org.apache.tuscany.sca.interfacedef.util.TypeInfo;
-import org.apache.tuscany.sca.interfacedef.util.XMLType;
 import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
+import org.apache.tuscany.sca.interfacedef.util.XMLType;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
-import org.apache.tuscany.sca.xsd.XSDefinition;
 import org.apache.tuscany.sca.xsd.XSDFactory;
-
+import org.apache.tuscany.sca.xsd.XSDefinition;
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaException;
-import org.apache.ws.commons.schema.XmlSchemaForm;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
-import org.apache.ws.commons.schema.XmlSchemaSerializer;
-import org.apache.ws.commons.schema.XmlSchemaType;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.w3c.dom.Document;
-import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.ls.DOMImplementationLS;
-import org.w3c.dom.ls.LSOutput;
-import org.w3c.dom.ls.LSSerializer;
 
 /**
  * @version $Rev$ $Date$
@@ -510,23 +493,9 @@
         if (dataBinding == null) {
             throw new RuntimeException("no data binding for " + db);
         }
-        XMLTypeHelper helper = helpers.get(db);
+        XMLTypeHelper helper = dataBinding.getXMLTypeHelper();
         if (helper == null) {
-            Class helperClass = dataBinding.getXMLTypeHelperClass();
-            for (XMLTypeHelper xth : helpers.values()) { 
-                if (xth.getClass() == helperClass) {
-                    helper = xth;
-                    break;
-                }
-            }
-            if (helper == null) {
-                try {
-                    helper = (XMLTypeHelper)helperClass.newInstance();
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-            }
-            helpers.put(db, helper);
+            helper = new JAXBTypeHelper();
         }
         TypeInfo typeInfo = helper.getTypeInfo(javaType.isArray() ? javaType.getComponentType() : javaType,
                                                dataType.getLogical());

Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java Thu May 29 10:24:18 2008
@@ -20,6 +20,7 @@
 
 import java.util.List;
 import java.util.Map;
+
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
@@ -153,15 +154,19 @@
     void setWrapperStyle(boolean wrapperStyle);
     
     /**
+     * @deprecated This should be the WrapperInfo.getDataBinding()
      * Get the databinding for the operation
      * @return
      */
+    @Deprecated
     String getDataBinding();
     
     /**
+     * @deprecated This should be the WrapperInfo.setDataBinding()
      * Set the databinding for the operation
      * @param dataBinding
      */
+    @Deprecated
     void setDataBinding(String dataBinding);
     
     /**

Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java Thu May 29 10:24:18 2008
@@ -22,6 +22,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.interfacedef.ConversationSequence;
@@ -51,7 +52,6 @@
     private boolean nonBlocking;
     private boolean wrapperStyle;
     private WrapperInfo wrapper;
-    private String dataBinding;
     private boolean dynamic;
     private Map<QName, List<DataType<XMLType>>> faultBeans;
     
@@ -264,11 +264,13 @@
     }
 
     public String getDataBinding() {
-        return dataBinding;
+        return wrapper != null ? wrapper.getDataBinding() : null;
     }
 
     public void setDataBinding(String dataBinding) {
-        this.dataBinding = dataBinding;
+        if (wrapper != null) {
+            wrapper.setDataBinding(dataBinding);
+        }
     }
 
     public boolean isDynamic() {

Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java?rev=661410&r1=661409&r2=661410&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java Thu May 29 10:24:18 2008
@@ -56,12 +56,20 @@
 
     private List<ElementInfo> outputChildElements;
 
+    // The data type of the unwrapped input child elements 
     private DataType<List<DataType>> unwrappedInputType;
 
+    // The data type of the unwrapped output child element (we only supports one child)
     private DataType<XMLType> unwrappedOutputType;
 
+    // The data for the input/output wrappers
     private String dataBinding;
     
+    // The data type for the input (request) wrapper bean
+    private DataType<XMLType> inputWrapperType;
+    // The data type for the output (response) wrapper bean
+    private DataType<XMLType> outputWrapperType;
+    
     private Class<?> inputWrapperClass;
     private Class<?> outputWrapperClass;
     
@@ -166,4 +174,28 @@
     public void setOutputWrapperClass(Class<?> outputWrapperClass) {
         this.outputWrapperClass = outputWrapperClass;
     }
+
+    public String getDataBinding() {
+        return dataBinding;
+    }
+
+    public void setDataBinding(String dataBinding) {
+        this.dataBinding = dataBinding;
+    }
+
+    public DataType<XMLType> getInputWrapperType() {
+        return inputWrapperType;
+    }
+
+    public void setInputWrapperType(DataType<XMLType> inputWrapperType) {
+        this.inputWrapperType = inputWrapperType;
+    }
+
+    public DataType<XMLType> getOutputWrapperType() {
+        return outputWrapperType;
+    }
+
+    public void setOutputWrapperType(DataType<XMLType> outputWrapperType) {
+        this.outputWrapperType = outputWrapperType;
+    }
 }