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]