Author: rfeng
Date: Sat Sep  9 10:12:33 2006
New Revision: 441820

URL: http://svn.apache.org/viewvc?view=rev&rev=441820
Log:
Improve SDO databinding and add more test cases

Added:
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java
   (with props)
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java
   (with props)
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
   (with props)
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java
   (with props)
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java
   (with props)
Modified:
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2String.java
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReader.java
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java
    
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java

Modified: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2String.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2String.java?view=diff&rev=441820&r1=441819&r2=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2String.java
 (original)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2String.java
 Sat Sep  9 10:12:33 2006
@@ -18,19 +18,32 @@
  */
 package org.apache.tuscany.databinding.sdo;
 
+import javax.xml.namespace.QName;
+
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.extension.TransformerExtension;
+import org.apache.tuscany.sdo.util.SDOUtil;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
 import commonj.sdo.helper.XMLHelper;
 
-public class DataObject2String extends TransformerExtension<DataObject, 
String> implements PullTransformer<DataObject, String> {
+public class DataObject2String extends TransformerExtension<DataObject, 
String> implements
+        PullTransformer<DataObject, String> {
 
     public String transform(DataObject source, TransformationContext context) {
         try {
-            return XMLHelper.INSTANCE.save(source, "", "");
+            TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, 
true);
+            XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+            Object logicalType = context.getSourceDataType().getLogical();
+            if (logicalType instanceof QName) {
+                QName elementName = (QName) logicalType;
+                return xmlHelper.save(source, elementName.getNamespaceURI(), 
elementName.getLocalPart());
+            } else {
+                return xmlHelper.save(source, "commonj.sdo", "dataObject");
+            }
         } catch (Exception e) {
             throw new TransformationException(e);
         }

Modified: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReader.java?view=diff&rev=441820&r1=441819&r2=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReader.java
 (original)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReader.java
 Sat Sep  9 10:12:33 2006
@@ -18,22 +18,42 @@
  */
 package org.apache.tuscany.databinding.sdo;
 
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.extension.TransformerExtension;
 import org.apache.tuscany.sdo.helper.XMLStreamHelper;
 import org.apache.tuscany.sdo.util.SDOUtil;
 
 import commonj.sdo.DataObject;
 import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
 
-public class DataObject2XMLStreamReader extends 
TransformerExtension<DataObject, XMLStreamReader> implements 
PullTransformer<DataObject, XMLStreamReader> {
-    private XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(TypeHelper.INSTANCE);
+public class DataObject2XMLStreamReader extends 
TransformerExtension<DataObject, XMLStreamReader> implements
+        PullTransformer<DataObject, XMLStreamReader> {
 
     public XMLStreamReader transform(DataObject source, TransformationContext 
context) {
-        return streamHelper.createXMLStreamReader(source);
+        try {
+            TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, 
true);
+            XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(typeHelper);
+            Object logicalType = context.getSourceDataType().getLogical();
+            if (logicalType instanceof QName) {
+                QName elementName = (QName) logicalType;
+                XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+                XMLDocument document = xmlHelper.createDocument(source, 
elementName.getNamespaceURI(), elementName.getLocalPart());
+                return streamHelper.createXMLStreamReader(document);
+            } else {
+                return streamHelper.createXMLStreamReader(source);
+            }
+        } catch (XMLStreamException e) {
+            // TODO: Add context to the exception
+            throw new TransformationException(e);
+        }
     }
 
     public Class getSourceType() {

Added: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java?view=auto&rev=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java
 (added)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java
 Sat Sep  9 10:12:33 2006
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.databinding.sdo;
+
+import org.apache.tuscany.databinding.TransformationContext;
+import org.apache.tuscany.spi.model.DataType;
+
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * Helper class to get TypeHelper from the transformation context
+ */
+public class SDODataTypeHelper {
+    private SDODataTypeHelper() {
+    }
+
+    public static TypeHelper getTypeHelper(TransformationContext context, 
boolean source) {
+        if (context == null) {
+            return TypeHelper.INSTANCE;
+        }
+        DataType<?> dataType = source ? context.getSourceDataType() : 
context.getTargetDataType();
+        TypeHelper typeHelper = (TypeHelper) 
dataType.getMetadata(TypeHelper.class.getName());
+        if (typeHelper == null) {
+            typeHelper = TypeHelper.INSTANCE;
+        }
+        return typeHelper;
+    }
+}

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDODataTypeHelper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java?view=diff&rev=441820&r1=441819&r2=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java
 (original)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java
 Sat Sep  9 10:12:33 2006
@@ -22,15 +22,19 @@
 import org.apache.tuscany.databinding.TransformationException;
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.extension.TransformerExtension;
+import org.apache.tuscany.sdo.util.SDOUtil;
 
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
 import commonj.sdo.helper.XMLHelper;
 
 public class String2DataObject extends TransformerExtension<String, 
DataObject> implements PullTransformer<String, DataObject> {
 
     public DataObject transform(String source, TransformationContext context) {
         try {
-            return XMLHelper.INSTANCE.load(source).getRootObject();
+            TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, 
false);
+            XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+            return xmlHelper.load(source).getRootObject();
         } catch (Exception e) {
             throw new TransformationException(e);
         }

Modified: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java?view=diff&rev=441820&r1=441819&r2=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java
 (original)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java
 Sat Sep  9 10:12:33 2006
@@ -32,8 +32,6 @@
 import commonj.sdo.helper.XMLDocument;
 
 public class XMLDocument2XMLStreamReader extends 
TransformerExtension<XMLDocument, XMLStreamReader> implements 
PullTransformer<XMLDocument, XMLStreamReader> {
-    private XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(TypeHelper.INSTANCE);
-
     /**
      * @param source
      * @param context
@@ -41,6 +39,8 @@
      */
     public XMLStreamReader transform(XMLDocument source, TransformationContext 
context) {
         try {
+            TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, 
true);
+            XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(typeHelper);
             return streamHelper.createXMLStreamReader(source);
         } catch (XMLStreamException e) {
             throw new TransformationException(e);

Modified: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java?view=diff&rev=441820&r1=441819&r2=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java
 (original)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java
 Sat Sep  9 10:12:33 2006
@@ -31,10 +31,11 @@
 import commonj.sdo.helper.TypeHelper;
 
 public class XMLStreamReader2DataObject extends 
TransformerExtension<XMLStreamReader, DataObject> implements 
PullTransformer<XMLStreamReader, DataObject> {
-    private XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(TypeHelper.INSTANCE);
 
     public DataObject transform(XMLStreamReader source, TransformationContext 
context) {
         try {
+            TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, 
false);
+            XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(typeHelper);
             return streamHelper.loadObject(source);
         } catch (Exception e) {
             throw new TransformationException(e);

Modified: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java?view=diff&rev=441820&r1=441819&r2=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java
 (original)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java
 Sat Sep  9 10:12:33 2006
@@ -35,12 +35,7 @@
 
     public XMLDocument transform(XMLStreamReader source, TransformationContext 
context) {
         try {
-            TypeHelper typeHelper = null;
-            if (context != null) {
-                typeHelper = (TypeHelper) 
context.getTargetDataType().getMetadata(TypeHelper.class.getName());
-            }
-            if (typeHelper == null)
-                typeHelper = TypeHelper.INSTANCE;
+            TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, 
false);
             XMLStreamHelper streamHelper = 
SDOUtil.createXMLStreamHelper(typeHelper);
             return streamHelper.load(source);
         } catch (Exception e) {

Added: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java?view=auto&rev=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java
 Sat Sep  9 10:12:33 2006
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.databinding.sdo;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.spi.model.DataType;
+
+import com.example.ipo.sdo.PurchaseOrderType;
+import commonj.sdo.DataObject;
+
+/**
+ * 
+ */
+public class DataObject2StringTestCase extends SDOTransformerTestCaseBase {
+    @Override
+    protected DataType<?> getSourceDataType() {
+        return new DataType<QName>(binding, PurchaseOrderType.class, 
orderQName);
+    }
+
+    @Override
+    protected DataType<?> getTargetDataType() {
+        return new DataType<Class<String>>(String.class, String.class);
+    }
+
+    public final void testTransform() {
+        String xml = new DataObject2String().transform(dataObject, context);
+        Assert.assertTrue(xml.indexOf("<city>San Jose</city>") != -1);
+        DataObject po = new String2DataObject().transform(xml, 
reversedContext);
+        Assert.assertTrue(po instanceof PurchaseOrderType);
+        PurchaseOrderType orderType = (PurchaseOrderType) po;
+        Assert.assertEquals("San Jose", orderType.getBillTo().getCity());
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2StringTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java?view=auto&rev=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
 Sat Sep  9 10:12:33 2006
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.databinding.sdo;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.spi.model.DataType;
+
+import com.example.ipo.sdo.PurchaseOrderType;
+
+/**
+ * 
+ */
+public class DataObject2XMLStreamReaderTestCase extends 
SDOTransformerTestCaseBase {
+
+    @Override
+    protected DataType<?> getSourceDataType() {
+        return new DataType<QName>(binding, PurchaseOrderType.class, 
orderQName);
+    }
+
+    @Override
+    protected DataType<?> getTargetDataType() {
+        return new DataType<Class<XMLStreamReader>>(XMLStreamReader.class, 
XMLStreamReader.class);
+    }
+
+    public final void testTransform() throws XMLStreamException {
+        XMLStreamReader reader = new 
DataObject2XMLStreamReader().transform(dataObject, context);
+        while (reader.hasNext()) {
+            int event = reader.next();
+            if (event == XMLStreamConstants.START_ELEMENT)
+                break;
+        }
+        new XMLStreamReader2DataObject().transform(reader, reversedContext);
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/DataObject2XMLStreamReaderTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java?view=auto&rev=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java
 (added)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java
 Sat Sep  9 10:12:33 2006
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.databinding.sdo;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.databinding.TransformationContext;
+import org.apache.tuscany.databinding.impl.TransformationContextImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.apache.tuscany.spi.model.DataType;
+
+import com.example.ipo.sdo.PurchaseOrderType;
+import com.example.ipo.sdo.SdoFactory;
+import com.example.ipo.sdo.USAddress;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+/**
+ * The base class for SDO-related test cases
+ */
+public abstract class SDOTransformerTestCaseBase extends TestCase {
+    protected String binding = DataObject.class.getName();
+
+    protected static final QName orderQName = new 
QName("http://www.example.com/IPO";, "purchaseOrder");
+
+    protected TransformationContext context;
+    protected TransformationContext reversedContext; 
+    protected DataObject dataObject;
+
+    /**
+     * @see junit.framework.TestCase#setUp()
+     */
+    protected void setUp() throws Exception {
+        super.setUp();
+        SDOUtil.registerStaticTypes(SdoFactory.class);
+        context = new TransformationContextImpl();
+        context.setSourceDataType(getSourceDataType());
+        context.setTargetDataType(getTargetDataType());
+
+        reversedContext = new TransformationContextImpl();
+        reversedContext.setSourceDataType(getTargetDataType());
+        reversedContext.setTargetDataType(getSourceDataType());
+        
+        PurchaseOrderType po = SdoFactory.INSTANCE.createPurchaseOrderType();
+        USAddress address = SdoFactory.INSTANCE.createUSAddress();
+        address.setCity("San Jose");
+        address.setStreet("123 ABC St");
+        address.setState("CA");
+        address.setStreet("95131");
+        po.setBillTo(address);
+        dataObject = (DataObject) po;
+    }
+
+    protected abstract DataType<?> getSourceDataType();
+
+    protected abstract DataType<?> getTargetDataType();
+
+}

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOTransformerTestCaseBase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java?view=auto&rev=441820
==============================================================================
--- 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java
 Sat Sep  9 10:12:33 2006
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.databinding.sdo;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.spi.model.DataType;
+
+import com.example.ipo.sdo.PurchaseOrderType;
+
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+/**
+ * 
+ */
+public class XMLDocument2XMLStreamReaderTestCase extends 
SDOTransformerTestCaseBase {
+
+    @Override
+    protected DataType<?> getSourceDataType() {
+        return new DataType<QName>(XMLDocument.class.getName(), 
XMLDocument.class, orderQName);
+    }
+
+    @Override
+    protected DataType<?> getTargetDataType() {
+        return new DataType<Class<XMLStreamReader>>(XMLStreamReader.class, 
XMLStreamReader.class);
+    }
+
+    public final void testTransform() throws XMLStreamException {
+        XMLDocument document =
+                XMLHelper.INSTANCE.createDocument(dataObject, 
orderQName.getNamespaceURI(), orderQName.getLocalPart());
+        XMLStreamReader reader = new 
XMLDocument2XMLStreamReader().transform(document, context);
+        XMLDocument document2 = new 
XMLStreamReader2XMLDocument().transform(reader, reversedContext);
+        Assert.assertEquals(orderQName.getNamespaceURI(), 
document2.getRootElementURI());
+        Assert.assertEquals(orderQName.getLocalPart(), 
document2.getRootElementName());
+        Assert.assertTrue(document2.getRootObject() instanceof 
PurchaseOrderType);
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/databinding/databinding-sdo/src/test/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReaderTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to