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 2006/09/26 09:01:22 UTC

svn commit: r449931 - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/ kernel/core/src/main/resources/org/apache/tuscany/core/ kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/ serv...

Author: rfeng
Date: Tue Sep 26 00:01:20 2006
New Revision: 449931

URL: http://svn.apache.org/viewvc?view=rev&rev=449931
Log:
Make sure the simple type transformers are used as intermediate nodes for the transformation

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java
    incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java
    incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java
    incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/Object2OMElement.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java?view=diff&rev=449931&r1=449930&r2=449931
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java Tue Sep 26 00:01:20 2006
@@ -21,6 +21,7 @@
 import org.apache.tuscany.spi.databinding.Transformer;
 import org.apache.tuscany.spi.databinding.extension.SimpleType2JavaTransformer;
 import org.osoa.sca.annotations.Service;
+import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
 /**
@@ -31,6 +32,9 @@
 
     @Override
     protected String getText(Node source) {
+        if (source instanceof Document) {
+            source = ((Document) source).getDocumentElement();
+        }
         return source.getTextContent();
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl?view=diff&rev=449931&r1=449930&r2=449931
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl Tue Sep 26 00:01:20 2006
@@ -66,5 +66,12 @@
     <component name="transformer.Output2OutputTransformer">
         <system:implementation.system class="org.apache.tuscany.core.databinding.impl.Output2OutputTransformer" />
     </component>
+
+    <component name="transformer.Node2Object">
+        <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2Object" />
+    </component>
     
+    <component name="transformer.Object2Node">
+        <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Object2Node" />
+    </component>    
 </composite>

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java?view=diff&rev=449931&r1=449930&r2=449931
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/Java2SimpleTypeTransformer.java Tue Sep 26 00:01:20 2006
@@ -53,7 +53,7 @@
     }
 
     public int getWeight() {
-        return 10;
+        return 10000;
     }
 
     protected abstract T createElement(ElementInfo element, String literal, TransformationContext context);

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java?view=diff&rev=449931&r1=449930&r2=449931
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/extension/SimpleType2JavaTransformer.java Tue Sep 26 00:01:20 2006
@@ -52,7 +52,8 @@
     }
 
     public int getWeight() {
-        return 10;
+        // Cannot be used for imtermediate 
+        return 10000;
     }
     
     protected abstract String getText(T source);

Modified: incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java?view=diff&rev=449931&r1=449930&r2=449931
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/OMElement2Object.java Tue Sep 26 00:01:20 2006
@@ -18,36 +18,23 @@
  */
 package org.apache.tuscany.databinding.axiom;
 
-import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.tuscany.spi.databinding.TransformationContext;
 import org.apache.tuscany.spi.databinding.Transformer;
-import org.apache.tuscany.spi.databinding.extension.Java2SimpleTypeTransformer;
-import org.apache.tuscany.spi.idl.ElementInfo;
+import org.apache.tuscany.spi.databinding.extension.SimpleType2JavaTransformer;
 import org.osoa.sca.annotations.Service;
 
 /**
  * Transformer to convert data from a simple java bject to OMElement
  */
 @Service(Transformer.class)
-public class OMElement2Object extends Java2SimpleTypeTransformer<OMElement> {
+public class OMElement2Object extends SimpleType2JavaTransformer<OMElement> {
 
-    private OMFactory factory;
-
-    public OMElement2Object() {
-        super();
-        factory = OMAbstractFactory.getOMFactory();
-    }
-
-    protected OMElement createElement(ElementInfo element, String text, TransformationContext context) {
-        OMElement omElement = factory.createOMElement(element.getQName(), null);
-        factory.createOMText(omElement, text);
-        return omElement;
+    @Override
+    protected String getText(OMElement source) {
+        return source.getText();
     }
 
-    public Class getTargetType() {
+    public Class getSourceType() {
         return OMElement.class;
     }
-
 }

Modified: incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/Object2OMElement.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/Object2OMElement.java?view=diff&rev=449931&r1=449930&r2=449931
==============================================================================
--- incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/Object2OMElement.java (original)
+++ incubator/tuscany/java/sca/services/databinding/databinding-axiom/src/main/java/org/apache/tuscany/databinding/axiom/Object2OMElement.java Tue Sep 26 00:01:20 2006
@@ -18,23 +18,37 @@
  */
 package org.apache.tuscany.databinding.axiom;
 
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.tuscany.spi.databinding.TransformationContext;
 import org.apache.tuscany.spi.databinding.Transformer;
+import org.apache.tuscany.spi.databinding.extension.Java2SimpleTypeTransformer;
 import org.apache.tuscany.spi.databinding.extension.SimpleType2JavaTransformer;
+import org.apache.tuscany.spi.idl.ElementInfo;
 import org.osoa.sca.annotations.Service;
 
 /**
  * Transformer to convert data from an simple OMElement to Java Object
  */
 @Service(Transformer.class)
-public class Object2OMElement extends SimpleType2JavaTransformer<OMElement> {
+public class Object2OMElement extends Java2SimpleTypeTransformer<OMElement> {
 
-    @Override
-    protected String getText(OMElement source) {
-        return source.getText();
+    private OMFactory factory;
+
+    public Object2OMElement() {
+        super();
+        factory = OMAbstractFactory.getOMFactory();
     }
 
-    public Class getSourceType() {
+    protected OMElement createElement(ElementInfo element, String text, TransformationContext context) {
+        OMElement omElement = factory.createOMElement(element.getQName(), null);
+        factory.createOMText(omElement, text);
+        return omElement;
+    }
+
+    @Override
+    public Class getTargetType() {
         return OMElement.class;
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org