summaryrefslogtreecommitdiffstats
path: root/java/sdo/lib
diff options
context:
space:
mode:
Diffstat (limited to 'java/sdo/lib')
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java904
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java890
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java250
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java98
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java98
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java140
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java492
-rw-r--r--java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java352
-rw-r--r--java/sdo/lib/src/main/resources/META-INF/LICENSE.txt414
-rw-r--r--java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF4
10 files changed, 1822 insertions, 1820 deletions
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
index 39d5902bf3..17d9a08a87 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
@@ -1,452 +1,452 @@
-/**
- *
- * 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.sdo.api;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.Map;
-
-import commonj.sdo.helper.XSDHelper;
-
-import commonj.sdo.DataGraph;
-import commonj.sdo.DataObject;
-import commonj.sdo.Property;
-import commonj.sdo.Sequence;
-import commonj.sdo.Type;
-import commonj.sdo.helper.CopyHelper;
-import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.TypeHelper;
-
-/**
- * This interface provides helper functions which are not included in the SDO specification itself.
- * Use of the functions in this interface is recommended, instead of resorting to low-level
- * implementation-specific APIs.
- */
-public interface SDOHelper
-{
- final int UNBOUNDED = -1; //return value from getUpperBound() when maxOccurs="unbounded"
- final int UNSPECIFIED = -2; //return value from getUpperBound() for global property
-
- /**
- * Create a non-extensible HelperContext to provide access to a consistent set of Helpers which make use
- * of a new TypeHelper instance to provide scope for type definitions.
- * @return the new HelperContext
- * @see #createHelperContext(boolean)
- */
- public HelperContext createHelperContext();
-
- /**
- * Create a non-extensible HelperContext to provide access to a consistent set of Helpers which make use
- * of a new TypeHelper instance to provide scope for type definitions.
- * @param options Map of default XMLOptions
- * @return the new HelperContext
- * @see #createHelperContext(boolean)
- */
- public HelperContext createHelperContext(boolean extensibleNamespaces, Map options);
-
- /**
- * Create a HelperContext to provide access to a consistent set of Helpers which make use of a new
- * TypeHelper instance to provide scope for type definitions.
- * @param extensibleNamespaces true if the contents of a namespaces should be incrementally modifiable over time
- * @return the new HelperContext
- */
- public HelperContext createHelperContext(boolean extensibleNamespaces);
-
- /**
- * create a non-extensible HelperContext with default load/save options
- * @param options default load/save options from XMLOptions
- * @return the new HelperContext
- */
- public HelperContext createHelperContext(Map options);
-
- /**
- * Creates an instance of a data type from the specified string.
- * @param dataType a Type, for which isDataType() returns true, to instantiate.
- * @param literal the string value of the dataType.
- * @return an instance of the dataType.
- * @see #convertToString(Type, Object)
- */
- public Object createFromString(Type dataType, String literal);
-
- /**
- * Converts an instance of a data type to a string literal representation.
- * @param dataType the Type, for which isDataType() returns true, of the value to convert.
- * @param value a value of the dataType.
- * @return the string literal representation of the value.
- * @see #createFromString(Type, String)
- */
- public String convertToString(Type dataType, Object value);
-
- /**
- * Create a DataObject wrapper for an instance of the specified dataType.
- * This method is typically used to create a root object that can be passed to the XMLHelper.save()
- * method when the root element to be serialized is an XMLSchema simpleType.
- * @param dataType a Type for which isDataType() returns true.
- * @param value the instance value.
- * @return a DataObject wrapper for the specified value.
- */
- public DataObject createDataTypeWrapper(Type dataType, Object value);
-
- /**
- * Get the SDO built-in type corresponding to the specified XSD type in the XML Schema
- * namespace ("http://www.w3.org/2001/XMLSchema").
- * @param xsdType a type name in the XML Schema namespace.
- * @return the SDO built-in Type corresponding to the specified XSD type.
- */
- public Type getXSDSDOType(String xsdType);
-
- /**
- * Gets the Sequence corresponding to the specified substitutable Property of the specified DataObject.
- * @param dataObject the data object.
- * @param head a substitution group head property.
- * @return the Sequence corresponding to the specified substitutable Property of the specified DataObject or
- * null if the specified Property isn't a substitution head.
- */
- public Sequence getSubstitutionValues(DataObject dataObject, Property head);
-
- /**
- * Get the SDO built-in type corresponding to the specified Java instanceClass.
- * @param javaClass the Java instanceClass of the type.
- * @return the SDO built-in Type corresponding to the specified instanceClass.
- */
- public Type getJavaSDOType(Class javaClass);
-
- /**
- * Return whether at least one value is required for a valid instance of the specified property.
- * @param the property in question.
- * @return true if the property is required.
- */
- public boolean isRequired(Property property);
-
- /**
- * Return the upper bound of the specified property or -1 if unbounded.
- * @param the property in question.
- * @return the upper bound.
- */
- public int getUpperBound(Property property);
-
- /**
- * Return the lower bound of the specified property or 1 by default
- * @param the property in question.
- * @return the lower bound.
- */
- public int getLowerBound(Property property);
-
- /**
- * Return Enumeration facet
- * @param type
- * @return List of enum facets in a Type
- *///Amita
- public List getEnumerationFacet(Type type);
-
- /**
- * Return Pattern facet
- * @param type
- * @return List of pattern facets in a Type
- *///Amita
- public List getPatternFacet(Type type);
-
- /**
- * Returns whether the Property is many-valued given the specified context.
- * @param property The Property in question
- * @param context The context to check whether the specified Property is many-valued
- * @return true if the Property is many-valued given the specified context.
- */
- public boolean isMany(Property property, DataObject context);
-
- /**
- * Create an empty data graph.
- * @return the new data graph instance.
- */
- public DataGraph createDataGraph();
-
- /**
- * Set the root object of a data graph.
- * @param dataGraph the data graph in which to set the root object.
- * @param rootObject the root object.
- */
- public void setRootObject(DataGraph dataGraph, DataObject rootObject);
-
- /**
- * Load a serialized data graph from the specified insputStream.
- *
- * @param inputStream the inputStream of the data graph.
- * @param options loader control options, or null.
- * @param hc the HelperContext in which to register deserialized Types and to find Types when
- * creating DataObject instances, or null for default HelperContext.
- * @return the de-serialized data graph.
- * @throws IOException
- */
- public DataGraph loadDataGraph(InputStream inputStream, Map options, HelperContext hc) throws IOException;
-
- /**
- * Serialize the specified data graph to the specified outputStream.
- * @param dataGraph the data graph to save.
- * @param outputStream the outputStream for the data graph.
- * @param options serializer control options, or null.
- * @throws IOException
- */
- public void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException;
-
- /**
- * Registers the specified {@link Type type}(s) to be serialized along with
- * the {@link DataObject data object}(s) in the graph. For example, the list of types returned from
- * {@link TypeHelper#define} can be registered with this method, allowing deserialization of
- * instances of a dynamically defined model.
- * @param dataGraph the DataGraph in which to register the specified type(s).
- * @param types a list containing the type(s) to be registered (TBD or null to automatically register all
- * types used by the objects in the DataGraph).
- */
- public void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/types);
-
- /**
- * Create a new cross scope CopyHelper.
- * @param hc the HelperContext containing the Types to use to create the copy objects.
- * @return the new CopyHelper.
- */
- public CopyHelper createCrossScopeCopyHelper(HelperContext targetScope);
-
-
- /**
- * Create a new XMLStreamHelper, with visibility to types in the specified HelperContext scope.
- * @param hc the HelperContext to use for locating types.
- * @return the new XMLStreamHelper.
- */
- public XMLStreamHelper createXMLStreamHelper(HelperContext hc);
-
- /**
- * Create a new ObjectInputStream in the specifice HelperContext scope.
- * @param inputStream the inputStream with which to create the ObjectInputStream.
- * @param helperContext the HelperContext scope.
- * @return the new ObjectInputStream.
- */
- public ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException;
-
- /**
- * Create a new ObjectOutputStream in the specifice HelperContext scope.
- * @param outputStream the outputStream with which to create the ObjectOutputStream.
- * @param helperContext the HelperContext scope.
- * @return the new ObjectOutputStream.
- */
- public ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException;
-
- /**
- * Gets all of the types associated with a uri.
- * @param hc the HelperContext to use for locating types.
- * @param uri the URI of the Types
- * @return a List containing instances of Type, null if uri is not found.
- */
- public List getTypes(HelperContext hc, String uri);
-
- /**
- * Gets the open content subset of the specified DataObject's instance properties.
- * @param dataObject the DataObject instance
- * @return a List containing any open content properties of the DataObject
- */
- public List getOpenContentProperties(DataObject dataObject);
-
- /**
- * Return true if the specified type is a special DocumentRoot Type.
- * @param type the Type in question
- * @return true if type is a DocumentRoot
- */
- public boolean isDocumentRoot(Type type);
-
- /**
- * Return an XPath from the containment root to the specified DataObject.
- * @param dataObject a DataObject
- * @return the XPath from the containment root.
- */
- public String getXPath(DataObject dataObject);
-
- /**
- * Gets a MetaDataBuilder which can be used to programatically create SDO Types and Properties.
- * @return a MetaDataBuilder instance
- */
- public MetaDataBuilder getMetaDataBuilder();
-
- /**
- * An experimental interface, subject to possible change that permits
- * registration of an event listener with a DataObject instance
- * @param dob DataObject
- * @param listener EventListener
- */
- public void addChangeListener(DataObject dob, EventListener listener);
-
- /**
- * An experimental interface, subject to possible change that permits
- * deregistration of an event listener with a DataObject instance
- * @param dob DataObject
- * @param listener EventListener
- */
- public void removeChangeListener(DataObject dob, EventListener listener);
-
- /**
- * This interface provides methods which can be used to programatically create SDO Types and Properties.
- * It provides a lower level and more efficient API then the DataObject-based one of TypeHelper.define().
- */
-
- public interface MetaDataBuilder
- {
-
- /**
- * Create a Type in the specified TypeHelper scope.
- * @return the new Type.
- */
- public Type createType(HelperContext hc, String uri, String name, boolean isDataType);
-
- /**
- * Add a baseType to the specified type.
- */
- public void addBaseType(Type type, Type baseType);
-
- /**
- * Add an aliasName to the specified type.
- */
- public void addAliasName(Type type, String aliasName);
-
- /**
- * Set the isOpen value of the specified type.
- */
- public void setOpen(Type type, boolean isOpen);
-
- /**
- * Set the isSequenced value of the specified type.
- */
- public void setSequenced(Type type, boolean isSequenced);
-
- /**
- * Set the isAbstract value of the specified type.
- */
- public void setAbstract(Type type, boolean isAbstract);
-
- /**
- * Set the isAbstract value of the specified type.
- */
- public void setJavaClassName(Type type, String javaClassName);
-
- /**
- * Create a new property in the specified containingType.
- */
- public Property createProperty(Type containingType, String name, Type propertyType);
-
- /**
- * Set a SDO property to become an XSD element or attribute
- */
- public void setPropertyXMLKind(Property property, boolean isXmlElement);
-
- /**
- * Create a new open content property in the specified TypeHelper scope.
- */
- public Property createOpenContentProperty(HelperContext hc, String uri, String name, Type type);
-
- /**
- * Add an aliasName to the specified property.
- */
- public void addAliasName(Property property, String aliasName);
-
- /**
- * Set the isMany value of the specified property.
- */
- public void setMany(Property property, boolean isMany);
-
- /**
- * Set the isContainment value of the specified property.
- */
- public void setContainment(Property property, boolean isContainment);
-
- /**
- * Set the default value of the specified property.
- */
- public void setDefault(Property property, String defaultValue);
-
- /**
- * Set the isReadOnly value of the specified property.
- */
- public void setReadOnly(Property property, boolean isReadOnly);
-
- /**
- * Set the opposite value of the specified property.
- */
- public void setOpposite(Property property, Property opposite);
-
- /**
- * Add an instance property to the specified type.
- */
- public void addTypeInstanceProperty(Type definedType, Property instanceProperty, Object value);
-
- /**
- * Add anf instance property to the specified property.
- */
- public void addPropertyInstanceProperty(Property definedProperty, Property instanceProperty, Object value);
- }
-
- /**
- * This interface contains options that can be passed to the XMLHelper load() and save() methods.
- */
- public interface XMLOptions
- {
- /**
- * Line Break String such as "\n", "\r\n", "\r" and "", absence/null is the default (line.separator System Property)
- */
- final String XML_SAVE_LINE_BREAK = "LineBreak";
-
- /**
- * Indent String such as "\t", "", etc. absence/null is the default (" ")
- */
- final String XML_SAVE_INDENT = "indent";
-
- /**
- * Margin String such as " ", "\t\t", etc. Absence/null/"" is the default (no margin)
- */
- final String XML_SAVE_MARGIN = "margin";
-
- /**
- * Attribute formatting that exceeds the specified width as Integer will cause a line break so that formatting will continue indented on the next line
- */
- final String XML_SAVE_LINE_WIDTH = "LINE_WIDTH";
-
- /**
- * Boolean to save a doctype declaration
- */
- final String XML_SAVE_DOCTYPE = "SAVE_DOCTYPE";
-
- /**
- * Boolean to process the schemaLocation/noNamespaceSchemaLocation attributes occurring in the instance document to {@link XSDHelper#define convert XSD(s) to Types}
- */
- final String XML_LOAD_SCHEMA = "ProcessSchemaLocations";
-
- /**
- * To tolerate malformed elements and attributes (default unless set by System property XML.load.form.lax). 0 not to.
- */
- final String XML_LOAD_LAX_FORM = "load malform";
-
- /**
- * Allows you to record unknown features during deserialization/loading.
- * The default is Boolean.FALSE unless set to Boolean.TRUE explicitly.
- */
- final String XML_LOAD_UNKNOWN_PROPERTIES = "load unknown properties";
- }
-
-}
+/**
+ *
+ * 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.sdo.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+
+import commonj.sdo.helper.XSDHelper;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.TypeHelper;
+
+/**
+ * This interface provides helper functions which are not included in the SDO specification itself.
+ * Use of the functions in this interface is recommended, instead of resorting to low-level
+ * implementation-specific APIs.
+ */
+public interface SDOHelper
+{
+ final int UNBOUNDED = -1; //return value from getUpperBound() when maxOccurs="unbounded"
+ final int UNSPECIFIED = -2; //return value from getUpperBound() for global property
+
+ /**
+ * Create a non-extensible HelperContext to provide access to a consistent set of Helpers which make use
+ * of a new TypeHelper instance to provide scope for type definitions.
+ * @return the new HelperContext
+ * @see #createHelperContext(boolean)
+ */
+ public HelperContext createHelperContext();
+
+ /**
+ * Create a non-extensible HelperContext to provide access to a consistent set of Helpers which make use
+ * of a new TypeHelper instance to provide scope for type definitions.
+ * @param options Map of default XMLOptions
+ * @return the new HelperContext
+ * @see #createHelperContext(boolean)
+ */
+ public HelperContext createHelperContext(boolean extensibleNamespaces, Map options);
+
+ /**
+ * Create a HelperContext to provide access to a consistent set of Helpers which make use of a new
+ * TypeHelper instance to provide scope for type definitions.
+ * @param extensibleNamespaces true if the contents of a namespaces should be incrementally modifiable over time
+ * @return the new HelperContext
+ */
+ public HelperContext createHelperContext(boolean extensibleNamespaces);
+
+ /**
+ * create a non-extensible HelperContext with default load/save options
+ * @param options default load/save options from XMLOptions
+ * @return the new HelperContext
+ */
+ public HelperContext createHelperContext(Map options);
+
+ /**
+ * Creates an instance of a data type from the specified string.
+ * @param dataType a Type, for which isDataType() returns true, to instantiate.
+ * @param literal the string value of the dataType.
+ * @return an instance of the dataType.
+ * @see #convertToString(Type, Object)
+ */
+ public Object createFromString(Type dataType, String literal);
+
+ /**
+ * Converts an instance of a data type to a string literal representation.
+ * @param dataType the Type, for which isDataType() returns true, of the value to convert.
+ * @param value a value of the dataType.
+ * @return the string literal representation of the value.
+ * @see #createFromString(Type, String)
+ */
+ public String convertToString(Type dataType, Object value);
+
+ /**
+ * Create a DataObject wrapper for an instance of the specified dataType.
+ * This method is typically used to create a root object that can be passed to the XMLHelper.save()
+ * method when the root element to be serialized is an XMLSchema simpleType.
+ * @param dataType a Type for which isDataType() returns true.
+ * @param value the instance value.
+ * @return a DataObject wrapper for the specified value.
+ */
+ public DataObject createDataTypeWrapper(Type dataType, Object value);
+
+ /**
+ * Get the SDO built-in type corresponding to the specified XSD type in the XML Schema
+ * namespace ("http://www.w3.org/2001/XMLSchema").
+ * @param xsdType a type name in the XML Schema namespace.
+ * @return the SDO built-in Type corresponding to the specified XSD type.
+ */
+ public Type getXSDSDOType(String xsdType);
+
+ /**
+ * Gets the Sequence corresponding to the specified substitutable Property of the specified DataObject.
+ * @param dataObject the data object.
+ * @param head a substitution group head property.
+ * @return the Sequence corresponding to the specified substitutable Property of the specified DataObject or
+ * null if the specified Property isn't a substitution head.
+ */
+ public Sequence getSubstitutionValues(DataObject dataObject, Property head);
+
+ /**
+ * Get the SDO built-in type corresponding to the specified Java instanceClass.
+ * @param javaClass the Java instanceClass of the type.
+ * @return the SDO built-in Type corresponding to the specified instanceClass.
+ */
+ public Type getJavaSDOType(Class javaClass);
+
+ /**
+ * Return whether at least one value is required for a valid instance of the specified property.
+ * @param the property in question.
+ * @return true if the property is required.
+ */
+ public boolean isRequired(Property property);
+
+ /**
+ * Return the upper bound of the specified property or -1 if unbounded.
+ * @param the property in question.
+ * @return the upper bound.
+ */
+ public int getUpperBound(Property property);
+
+ /**
+ * Return the lower bound of the specified property or 1 by default
+ * @param the property in question.
+ * @return the lower bound.
+ */
+ public int getLowerBound(Property property);
+
+ /**
+ * Return Enumeration facet
+ * @param type
+ * @return List of enum facets in a Type
+ *///Amita
+ public List getEnumerationFacet(Type type);
+
+ /**
+ * Return Pattern facet
+ * @param type
+ * @return List of pattern facets in a Type
+ *///Amita
+ public List getPatternFacet(Type type);
+
+ /**
+ * Returns whether the Property is many-valued given the specified context.
+ * @param property The Property in question
+ * @param context The context to check whether the specified Property is many-valued
+ * @return true if the Property is many-valued given the specified context.
+ */
+ public boolean isMany(Property property, DataObject context);
+
+ /**
+ * Create an empty data graph.
+ * @return the new data graph instance.
+ */
+ public DataGraph createDataGraph();
+
+ /**
+ * Set the root object of a data graph.
+ * @param dataGraph the data graph in which to set the root object.
+ * @param rootObject the root object.
+ */
+ public void setRootObject(DataGraph dataGraph, DataObject rootObject);
+
+ /**
+ * Load a serialized data graph from the specified insputStream.
+ *
+ * @param inputStream the inputStream of the data graph.
+ * @param options loader control options, or null.
+ * @param hc the HelperContext in which to register deserialized Types and to find Types when
+ * creating DataObject instances, or null for default HelperContext.
+ * @return the de-serialized data graph.
+ * @throws IOException
+ */
+ public DataGraph loadDataGraph(InputStream inputStream, Map options, HelperContext hc) throws IOException;
+
+ /**
+ * Serialize the specified data graph to the specified outputStream.
+ * @param dataGraph the data graph to save.
+ * @param outputStream the outputStream for the data graph.
+ * @param options serializer control options, or null.
+ * @throws IOException
+ */
+ public void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException;
+
+ /**
+ * Registers the specified {@link Type type}(s) to be serialized along with
+ * the {@link DataObject data object}(s) in the graph. For example, the list of types returned from
+ * {@link TypeHelper#define} can be registered with this method, allowing deserialization of
+ * instances of a dynamically defined model.
+ * @param dataGraph the DataGraph in which to register the specified type(s).
+ * @param types a list containing the type(s) to be registered (TBD or null to automatically register all
+ * types used by the objects in the DataGraph).
+ */
+ public void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/types);
+
+ /**
+ * Create a new cross scope CopyHelper.
+ * @param hc the HelperContext containing the Types to use to create the copy objects.
+ * @return the new CopyHelper.
+ */
+ public CopyHelper createCrossScopeCopyHelper(HelperContext targetScope);
+
+
+ /**
+ * Create a new XMLStreamHelper, with visibility to types in the specified HelperContext scope.
+ * @param hc the HelperContext to use for locating types.
+ * @return the new XMLStreamHelper.
+ */
+ public XMLStreamHelper createXMLStreamHelper(HelperContext hc);
+
+ /**
+ * Create a new ObjectInputStream in the specifice HelperContext scope.
+ * @param inputStream the inputStream with which to create the ObjectInputStream.
+ * @param helperContext the HelperContext scope.
+ * @return the new ObjectInputStream.
+ */
+ public ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException;
+
+ /**
+ * Create a new ObjectOutputStream in the specifice HelperContext scope.
+ * @param outputStream the outputStream with which to create the ObjectOutputStream.
+ * @param helperContext the HelperContext scope.
+ * @return the new ObjectOutputStream.
+ */
+ public ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException;
+
+ /**
+ * Gets all of the types associated with a uri.
+ * @param hc the HelperContext to use for locating types.
+ * @param uri the URI of the Types
+ * @return a List containing instances of Type, null if uri is not found.
+ */
+ public List getTypes(HelperContext hc, String uri);
+
+ /**
+ * Gets the open content subset of the specified DataObject's instance properties.
+ * @param dataObject the DataObject instance
+ * @return a List containing any open content properties of the DataObject
+ */
+ public List getOpenContentProperties(DataObject dataObject);
+
+ /**
+ * Return true if the specified type is a special DocumentRoot Type.
+ * @param type the Type in question
+ * @return true if type is a DocumentRoot
+ */
+ public boolean isDocumentRoot(Type type);
+
+ /**
+ * Return an XPath from the containment root to the specified DataObject.
+ * @param dataObject a DataObject
+ * @return the XPath from the containment root.
+ */
+ public String getXPath(DataObject dataObject);
+
+ /**
+ * Gets a MetaDataBuilder which can be used to programatically create SDO Types and Properties.
+ * @return a MetaDataBuilder instance
+ */
+ public MetaDataBuilder getMetaDataBuilder();
+
+ /**
+ * An experimental interface, subject to possible change that permits
+ * registration of an event listener with a DataObject instance
+ * @param dob DataObject
+ * @param listener EventListener
+ */
+ public void addChangeListener(DataObject dob, EventListener listener);
+
+ /**
+ * An experimental interface, subject to possible change that permits
+ * deregistration of an event listener with a DataObject instance
+ * @param dob DataObject
+ * @param listener EventListener
+ */
+ public void removeChangeListener(DataObject dob, EventListener listener);
+
+ /**
+ * This interface provides methods which can be used to programatically create SDO Types and Properties.
+ * It provides a lower level and more efficient API then the DataObject-based one of TypeHelper.define().
+ */
+
+ public interface MetaDataBuilder
+ {
+
+ /**
+ * Create a Type in the specified TypeHelper scope.
+ * @return the new Type.
+ */
+ public Type createType(HelperContext hc, String uri, String name, boolean isDataType);
+
+ /**
+ * Add a baseType to the specified type.
+ */
+ public void addBaseType(Type type, Type baseType);
+
+ /**
+ * Add an aliasName to the specified type.
+ */
+ public void addAliasName(Type type, String aliasName);
+
+ /**
+ * Set the isOpen value of the specified type.
+ */
+ public void setOpen(Type type, boolean isOpen);
+
+ /**
+ * Set the isSequenced value of the specified type.
+ */
+ public void setSequenced(Type type, boolean isSequenced);
+
+ /**
+ * Set the isAbstract value of the specified type.
+ */
+ public void setAbstract(Type type, boolean isAbstract);
+
+ /**
+ * Set the isAbstract value of the specified type.
+ */
+ public void setJavaClassName(Type type, String javaClassName);
+
+ /**
+ * Create a new property in the specified containingType.
+ */
+ public Property createProperty(Type containingType, String name, Type propertyType);
+
+ /**
+ * Set a SDO property to become an XSD element or attribute
+ */
+ public void setPropertyXMLKind(Property property, boolean isXmlElement);
+
+ /**
+ * Create a new open content property in the specified TypeHelper scope.
+ */
+ public Property createOpenContentProperty(HelperContext hc, String uri, String name, Type type);
+
+ /**
+ * Add an aliasName to the specified property.
+ */
+ public void addAliasName(Property property, String aliasName);
+
+ /**
+ * Set the isMany value of the specified property.
+ */
+ public void setMany(Property property, boolean isMany);
+
+ /**
+ * Set the isContainment value of the specified property.
+ */
+ public void setContainment(Property property, boolean isContainment);
+
+ /**
+ * Set the default value of the specified property.
+ */
+ public void setDefault(Property property, String defaultValue);
+
+ /**
+ * Set the isReadOnly value of the specified property.
+ */
+ public void setReadOnly(Property property, boolean isReadOnly);
+
+ /**
+ * Set the opposite value of the specified property.
+ */
+ public void setOpposite(Property property, Property opposite);
+
+ /**
+ * Add an instance property to the specified type.
+ */
+ public void addTypeInstanceProperty(Type definedType, Property instanceProperty, Object value);
+
+ /**
+ * Add anf instance property to the specified property.
+ */
+ public void addPropertyInstanceProperty(Property definedProperty, Property instanceProperty, Object value);
+ }
+
+ /**
+ * This interface contains options that can be passed to the XMLHelper load() and save() methods.
+ */
+ public interface XMLOptions
+ {
+ /**
+ * Line Break String such as "\n", "\r\n", "\r" and "", absence/null is the default (line.separator System Property)
+ */
+ final String XML_SAVE_LINE_BREAK = "LineBreak";
+
+ /**
+ * Indent String such as "\t", "", etc. absence/null is the default (" ")
+ */
+ final String XML_SAVE_INDENT = "indent";
+
+ /**
+ * Margin String such as " ", "\t\t", etc. Absence/null/"" is the default (no margin)
+ */
+ final String XML_SAVE_MARGIN = "margin";
+
+ /**
+ * Attribute formatting that exceeds the specified width as Integer will cause a line break so that formatting will continue indented on the next line
+ */
+ final String XML_SAVE_LINE_WIDTH = "LINE_WIDTH";
+
+ /**
+ * Boolean to save a doctype declaration
+ */
+ final String XML_SAVE_DOCTYPE = "SAVE_DOCTYPE";
+
+ /**
+ * Boolean to process the schemaLocation/noNamespaceSchemaLocation attributes occurring in the instance document to {@link XSDHelper#define convert XSD(s) to Types}
+ */
+ final String XML_LOAD_SCHEMA = "ProcessSchemaLocations";
+
+ /**
+ * To tolerate malformed elements and attributes (default unless set by System property XML.load.form.lax). 0 not to.
+ */
+ final String XML_LOAD_LAX_FORM = "load malform";
+
+ /**
+ * Allows you to record unknown features during deserialization/loading.
+ * The default is Boolean.FALSE unless set to Boolean.TRUE explicitly.
+ */
+ final String XML_LOAD_UNKNOWN_PROPERTIES = "load unknown properties";
+ }
+
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java
index 4046c80df3..54f86aafbd 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java
@@ -1,445 +1,445 @@
-/**
- *
- * 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.sdo.api;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.sdo.api.EventListener;
-import org.apache.tuscany.sdo.spi.HelperProviderBase;
-
-import commonj.sdo.DataGraph;
-import commonj.sdo.DataObject;
-import commonj.sdo.Property;
-import commonj.sdo.Sequence;
-import commonj.sdo.Type;
-import commonj.sdo.helper.CopyHelper;
-import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.TypeHelper;
-import commonj.sdo.impl.HelperProvider;
-
-/**
- * This class provides convenient static utility functions for calling the default SDOHelper.
- */
-public final class SDOUtil
-{
- protected static SDOHelper defaultSDOHelper = ((HelperProviderBase)HelperProvider.INSTANCE).sdoHelper();
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataTypeWrapper(Type, Object)}.
- */
- public static DataObject createDataTypeWrapper(Type dataType, Object value)
- {
- return defaultSDOHelper.createDataTypeWrapper(dataType, value);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createFromString(Type, String)}.
- */
- public static Object createFromString(Type dataType, String literal)
- {
- return defaultSDOHelper.createFromString(dataType, literal);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#convertToString(Type, Object)}.
- */
- public static String convertToString(Type dataType, Object value)
- {
- return defaultSDOHelper.convertToString(dataType, value);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getXSDSDOType(String)}.
- */
- public static Type getXSDSDOType(String xsdType)
- {
- return defaultSDOHelper.getXSDSDOType(xsdType);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getSubstitutionValues(DataObject, Property)}.
- */
- public static Sequence getSubstitutionValues(DataObject dataObject, Property head)
- {
- return defaultSDOHelper.getSubstitutionValues(dataObject, head);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getJavaSDOType(Class)}.
- */
- public static Type getJavaSDOType(Class javaClass)
- {
- return defaultSDOHelper.getJavaSDOType(javaClass);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isRequired(Property)}.
- */
- public static boolean isRequired(Property property)
- {
- return defaultSDOHelper.isRequired(property);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getUpperBound(Property)}.
- */
- public static int getUpperBound(Property property)
- {
- return defaultSDOHelper.getUpperBound(property);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getLowerBound(Property)}.
- */
- public static int getLowerBound(Property property)
- {
- return defaultSDOHelper.getLowerBound(property);
- }
-
- public static List getEnumerationFacet(Type type) {
- return defaultSDOHelper.getEnumerationFacet(type);
- }
-
- public static List getPatternFacet(Type type) {
- return defaultSDOHelper.getPatternFacet(type);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isMany(Property, DataObject)}.
- */
- public static boolean isMany(Property property, DataObject context)
- {
- return defaultSDOHelper.isMany(property, context);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataGraph}.
- */
- public static DataGraph createDataGraph()
- {
- return defaultSDOHelper.createDataGraph();
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#setRootObject(DataGraph, DataObject)}.
- */
- public static void setRootObject(DataGraph dataGraph, DataObject rootObject)
- {
- defaultSDOHelper.setRootObject(dataGraph, rootObject);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, TypeHelper)}.
- */
- public static DataGraph loadDataGraph(InputStream inputStream, Map options) throws IOException
- {
- return defaultSDOHelper.loadDataGraph(inputStream, options, (HelperContext)null);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, HelperContext)}.
- */
- public static DataGraph loadDataGraph(InputStream inputStream, Map options, HelperContext hc) throws IOException
- {
- return defaultSDOHelper.loadDataGraph(inputStream, options, hc);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#saveDataGraph(DataGraph, OutputStream, Map)}.
- */
- public static void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException
- {
- defaultSDOHelper.saveDataGraph(dataGraph, outputStream, options);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#registerDataGraphTypes(DataGraph, List)}.
- */
- public static void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/ types)
- {
- defaultSDOHelper.registerDataGraphTypes(dataGraph, types);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext(boolean,Map)}.
- */
- public static HelperContext createHelperContext(boolean extensibleNamespaces,Map options){
- return defaultSDOHelper.createHelperContext(extensibleNamespaces, options);
- }
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext(boolean)}.
- */
- public static HelperContext createHelperContext(boolean extensibleNamespaces)
- {
- return defaultSDOHelper.createHelperContext(extensibleNamespaces);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext}.
- */
- public static HelperContext createHelperContext(Map options)
- {
- return defaultSDOHelper.createHelperContext(options);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext}.
- */
- public static HelperContext createHelperContext()
- {
- return defaultSDOHelper.createHelperContext();
- }
-
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createCrossScopeCopyHelper(HelperContext)}.
- */
- public static CopyHelper createCrossScopeCopyHelper(HelperContext hc)
- {
- return defaultSDOHelper.createCrossScopeCopyHelper(hc);
- }
-
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createXMLStreamHelper(HelperContext)}.
- */
- public static XMLStreamHelper createXMLStreamHelper(HelperContext hc)
- {
- return defaultSDOHelper.createXMLStreamHelper(hc);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectInputStream(InputStream, HelperContext)}.
- */
- public static ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
- {
- return defaultSDOHelper.createObjectInputStream(inputStream, helperContext);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectOutputStream(OutputStream, HelperContext)}.
- */
- public static ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
- {
- return defaultSDOHelper.createObjectOutputStream(outputStream, helperContext);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getTypes(HelperContext, String)}.
- */
- public static List getTypes(HelperContext hc, String uri) {
-
- return defaultSDOHelper.getTypes(hc, uri);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getOpenContentProperties(DataObject)}.
- */
- public static List getOpenContentProperties(DataObject dataObject)
- {
- return defaultSDOHelper.getOpenContentProperties(dataObject);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isDocumentRoot(Type)}.
- */
- public static boolean isDocumentRoot(Type type)
- {
- return defaultSDOHelper.isDocumentRoot(type);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getXPath(DataObject)}.
- */
- public static String getXPath(DataObject dataObject)
- {
- return defaultSDOHelper.getXPath(dataObject);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createType(HelperContext, String, String, boolean)}.
- */
- public static Type createType(HelperContext hc, String uri, String name, boolean isDataType)
- {
- return defaultSDOHelper.getMetaDataBuilder().createType(hc, uri, name, isDataType);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addBaseType(Type, Type)}.
- */
- public static void addBaseType(Type type, Type baseType)
- {
- defaultSDOHelper.getMetaDataBuilder().addBaseType(type, baseType);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Type, String)}.
- */
- public static void addAliasName(Type type, String aliasName)
- {
- defaultSDOHelper.getMetaDataBuilder().addAliasName(type, aliasName);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpen(Type, boolean)}.
- */
- public static void setOpen(Type type, boolean isOpen)
- {
- defaultSDOHelper.getMetaDataBuilder().setOpen(type, isOpen);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setSequenced(Type, boolean)}.
- */
- public static void setSequenced(Type type, boolean isSequenced)
- {
- defaultSDOHelper.getMetaDataBuilder().setSequenced(type, isSequenced);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setAbstract(Type, boolean)}.
- */
- public static void setAbstract(Type type, boolean isAbstract)
- {
- defaultSDOHelper.getMetaDataBuilder().setAbstract(type, isAbstract);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setJavaClassName(Type, String)}.
- */
- public static void setJavaClassName(Type type, String javaClassName)
- {
- defaultSDOHelper.getMetaDataBuilder().setJavaClassName(type, javaClassName);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createProperty(Type, String, Type)}.
- */
- public static Property createProperty(Type containingType, String name, Type propertyType)
- {
- return defaultSDOHelper.getMetaDataBuilder().createProperty(containingType, name, propertyType);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setPropertyXMLKind(Property, boolean)}.
- */
- public static void setPropertyXMLKind(Property property, boolean isXmlElement) {
- defaultSDOHelper.getMetaDataBuilder().setPropertyXMLKind(property, isXmlElement);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createOpenContentProperty(TypeHelper, String, String, Type)}.
- */
- public static Property createOpenContentProperty(HelperContext hc, String uri, String name, Type type)
- {
- return defaultSDOHelper.getMetaDataBuilder().createOpenContentProperty(hc, uri, name, type);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Property, String)}.
- */
- public static void addAliasName(Property property, String aliasName)
- {
- defaultSDOHelper.getMetaDataBuilder().addAliasName(property, aliasName);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setMany(Property, boolean)}.
- */
- public static void setMany(Property property, boolean isMany)
- {
- defaultSDOHelper.getMetaDataBuilder().setMany(property, isMany);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setContainment(Property, boolean)}.
- */
- public static void setContainment(Property property, boolean isContainment)
- {
- defaultSDOHelper.getMetaDataBuilder().setContainment(property, isContainment);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setDefault(Property, String)}.
- */
- public static void setDefault(Property property, String defaultValue)
- {
- defaultSDOHelper.getMetaDataBuilder().setDefault(property, defaultValue);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setReadOnly(Property, boolean)}.
- */
- public static void setReadOnly(Property property, boolean isReadOnly)
- {
- defaultSDOHelper.getMetaDataBuilder().setReadOnly(property, isReadOnly);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpposite(Property, Property)}.
- */
- public static void setOpposite(Property property, Property opposite)
- {
- defaultSDOHelper.getMetaDataBuilder().setOpposite(property, opposite);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addTypeInstanceProperty(Type, Property, Object)}.
- */
- public static void addTypeInstanceProperty(Type definedType, Property property, Object value)
- {
- defaultSDOHelper.getMetaDataBuilder().addTypeInstanceProperty(definedType, property, value);
- }
-
- /**
- * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addPropertyInstanceProperty(Property, Property, Object)}.
- */
- public static void addPropertyInstanceProperty(Property definedProperty, Property property, Object value)
- {
- defaultSDOHelper.getMetaDataBuilder().addPropertyInstanceProperty(definedProperty, property, value);
- }
-
-
- /**
- * @see SDOHelper#addChangeListener(DataObject, EventListener)
- * @param dob
- * @param l
- */
- public static void addChangeListener(DataObject dob, EventListener l) {
- defaultSDOHelper.addChangeListener(dob, l);
- }
-
- /**
- * @see SDOHelper#addChangeListener(DataObject, EventListener)
- * @param dob
- * @param l
- */
- public static void removeChangeListener(DataObject dob, EventListener l) {
- defaultSDOHelper.removeChangeListener(dob, l);
- }
-
-
-}
+/**
+ *
+ * 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.sdo.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.api.EventListener;
+import org.apache.tuscany.sdo.spi.HelperProviderBase;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.impl.HelperProvider;
+
+/**
+ * This class provides convenient static utility functions for calling the default SDOHelper.
+ */
+public final class SDOUtil
+{
+ protected static SDOHelper defaultSDOHelper = ((HelperProviderBase)HelperProvider.INSTANCE).sdoHelper();
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataTypeWrapper(Type, Object)}.
+ */
+ public static DataObject createDataTypeWrapper(Type dataType, Object value)
+ {
+ return defaultSDOHelper.createDataTypeWrapper(dataType, value);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createFromString(Type, String)}.
+ */
+ public static Object createFromString(Type dataType, String literal)
+ {
+ return defaultSDOHelper.createFromString(dataType, literal);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#convertToString(Type, Object)}.
+ */
+ public static String convertToString(Type dataType, Object value)
+ {
+ return defaultSDOHelper.convertToString(dataType, value);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getXSDSDOType(String)}.
+ */
+ public static Type getXSDSDOType(String xsdType)
+ {
+ return defaultSDOHelper.getXSDSDOType(xsdType);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getSubstitutionValues(DataObject, Property)}.
+ */
+ public static Sequence getSubstitutionValues(DataObject dataObject, Property head)
+ {
+ return defaultSDOHelper.getSubstitutionValues(dataObject, head);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getJavaSDOType(Class)}.
+ */
+ public static Type getJavaSDOType(Class javaClass)
+ {
+ return defaultSDOHelper.getJavaSDOType(javaClass);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isRequired(Property)}.
+ */
+ public static boolean isRequired(Property property)
+ {
+ return defaultSDOHelper.isRequired(property);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getUpperBound(Property)}.
+ */
+ public static int getUpperBound(Property property)
+ {
+ return defaultSDOHelper.getUpperBound(property);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getLowerBound(Property)}.
+ */
+ public static int getLowerBound(Property property)
+ {
+ return defaultSDOHelper.getLowerBound(property);
+ }
+
+ public static List getEnumerationFacet(Type type) {
+ return defaultSDOHelper.getEnumerationFacet(type);
+ }
+
+ public static List getPatternFacet(Type type) {
+ return defaultSDOHelper.getPatternFacet(type);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isMany(Property, DataObject)}.
+ */
+ public static boolean isMany(Property property, DataObject context)
+ {
+ return defaultSDOHelper.isMany(property, context);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataGraph}.
+ */
+ public static DataGraph createDataGraph()
+ {
+ return defaultSDOHelper.createDataGraph();
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#setRootObject(DataGraph, DataObject)}.
+ */
+ public static void setRootObject(DataGraph dataGraph, DataObject rootObject)
+ {
+ defaultSDOHelper.setRootObject(dataGraph, rootObject);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, TypeHelper)}.
+ */
+ public static DataGraph loadDataGraph(InputStream inputStream, Map options) throws IOException
+ {
+ return defaultSDOHelper.loadDataGraph(inputStream, options, (HelperContext)null);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, HelperContext)}.
+ */
+ public static DataGraph loadDataGraph(InputStream inputStream, Map options, HelperContext hc) throws IOException
+ {
+ return defaultSDOHelper.loadDataGraph(inputStream, options, hc);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#saveDataGraph(DataGraph, OutputStream, Map)}.
+ */
+ public static void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException
+ {
+ defaultSDOHelper.saveDataGraph(dataGraph, outputStream, options);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#registerDataGraphTypes(DataGraph, List)}.
+ */
+ public static void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/ types)
+ {
+ defaultSDOHelper.registerDataGraphTypes(dataGraph, types);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext(boolean,Map)}.
+ */
+ public static HelperContext createHelperContext(boolean extensibleNamespaces,Map options){
+ return defaultSDOHelper.createHelperContext(extensibleNamespaces, options);
+ }
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext(boolean)}.
+ */
+ public static HelperContext createHelperContext(boolean extensibleNamespaces)
+ {
+ return defaultSDOHelper.createHelperContext(extensibleNamespaces);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext}.
+ */
+ public static HelperContext createHelperContext(Map options)
+ {
+ return defaultSDOHelper.createHelperContext(options);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext}.
+ */
+ public static HelperContext createHelperContext()
+ {
+ return defaultSDOHelper.createHelperContext();
+ }
+
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createCrossScopeCopyHelper(HelperContext)}.
+ */
+ public static CopyHelper createCrossScopeCopyHelper(HelperContext hc)
+ {
+ return defaultSDOHelper.createCrossScopeCopyHelper(hc);
+ }
+
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createXMLStreamHelper(HelperContext)}.
+ */
+ public static XMLStreamHelper createXMLStreamHelper(HelperContext hc)
+ {
+ return defaultSDOHelper.createXMLStreamHelper(hc);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectInputStream(InputStream, HelperContext)}.
+ */
+ public static ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
+ {
+ return defaultSDOHelper.createObjectInputStream(inputStream, helperContext);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectOutputStream(OutputStream, HelperContext)}.
+ */
+ public static ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
+ {
+ return defaultSDOHelper.createObjectOutputStream(outputStream, helperContext);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getTypes(HelperContext, String)}.
+ */
+ public static List getTypes(HelperContext hc, String uri) {
+
+ return defaultSDOHelper.getTypes(hc, uri);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getOpenContentProperties(DataObject)}.
+ */
+ public static List getOpenContentProperties(DataObject dataObject)
+ {
+ return defaultSDOHelper.getOpenContentProperties(dataObject);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isDocumentRoot(Type)}.
+ */
+ public static boolean isDocumentRoot(Type type)
+ {
+ return defaultSDOHelper.isDocumentRoot(type);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getXPath(DataObject)}.
+ */
+ public static String getXPath(DataObject dataObject)
+ {
+ return defaultSDOHelper.getXPath(dataObject);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createType(HelperContext, String, String, boolean)}.
+ */
+ public static Type createType(HelperContext hc, String uri, String name, boolean isDataType)
+ {
+ return defaultSDOHelper.getMetaDataBuilder().createType(hc, uri, name, isDataType);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addBaseType(Type, Type)}.
+ */
+ public static void addBaseType(Type type, Type baseType)
+ {
+ defaultSDOHelper.getMetaDataBuilder().addBaseType(type, baseType);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Type, String)}.
+ */
+ public static void addAliasName(Type type, String aliasName)
+ {
+ defaultSDOHelper.getMetaDataBuilder().addAliasName(type, aliasName);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpen(Type, boolean)}.
+ */
+ public static void setOpen(Type type, boolean isOpen)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setOpen(type, isOpen);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setSequenced(Type, boolean)}.
+ */
+ public static void setSequenced(Type type, boolean isSequenced)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setSequenced(type, isSequenced);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setAbstract(Type, boolean)}.
+ */
+ public static void setAbstract(Type type, boolean isAbstract)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setAbstract(type, isAbstract);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setJavaClassName(Type, String)}.
+ */
+ public static void setJavaClassName(Type type, String javaClassName)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setJavaClassName(type, javaClassName);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createProperty(Type, String, Type)}.
+ */
+ public static Property createProperty(Type containingType, String name, Type propertyType)
+ {
+ return defaultSDOHelper.getMetaDataBuilder().createProperty(containingType, name, propertyType);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setPropertyXMLKind(Property, boolean)}.
+ */
+ public static void setPropertyXMLKind(Property property, boolean isXmlElement) {
+ defaultSDOHelper.getMetaDataBuilder().setPropertyXMLKind(property, isXmlElement);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createOpenContentProperty(TypeHelper, String, String, Type)}.
+ */
+ public static Property createOpenContentProperty(HelperContext hc, String uri, String name, Type type)
+ {
+ return defaultSDOHelper.getMetaDataBuilder().createOpenContentProperty(hc, uri, name, type);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Property, String)}.
+ */
+ public static void addAliasName(Property property, String aliasName)
+ {
+ defaultSDOHelper.getMetaDataBuilder().addAliasName(property, aliasName);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setMany(Property, boolean)}.
+ */
+ public static void setMany(Property property, boolean isMany)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setMany(property, isMany);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setContainment(Property, boolean)}.
+ */
+ public static void setContainment(Property property, boolean isContainment)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setContainment(property, isContainment);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setDefault(Property, String)}.
+ */
+ public static void setDefault(Property property, String defaultValue)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setDefault(property, defaultValue);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setReadOnly(Property, boolean)}.
+ */
+ public static void setReadOnly(Property property, boolean isReadOnly)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setReadOnly(property, isReadOnly);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpposite(Property, Property)}.
+ */
+ public static void setOpposite(Property property, Property opposite)
+ {
+ defaultSDOHelper.getMetaDataBuilder().setOpposite(property, opposite);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addTypeInstanceProperty(Type, Property, Object)}.
+ */
+ public static void addTypeInstanceProperty(Type definedType, Property property, Object value)
+ {
+ defaultSDOHelper.getMetaDataBuilder().addTypeInstanceProperty(definedType, property, value);
+ }
+
+ /**
+ * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addPropertyInstanceProperty(Property, Property, Object)}.
+ */
+ public static void addPropertyInstanceProperty(Property definedProperty, Property property, Object value)
+ {
+ defaultSDOHelper.getMetaDataBuilder().addPropertyInstanceProperty(definedProperty, property, value);
+ }
+
+
+ /**
+ * @see SDOHelper#addChangeListener(DataObject, EventListener)
+ * @param dob
+ * @param l
+ */
+ public static void addChangeListener(DataObject dob, EventListener l) {
+ defaultSDOHelper.addChangeListener(dob, l);
+ }
+
+ /**
+ * @see SDOHelper#addChangeListener(DataObject, EventListener)
+ * @param dob
+ * @param l
+ */
+ public static void removeChangeListener(DataObject dob, EventListener l) {
+ defaultSDOHelper.removeChangeListener(dob, l);
+ }
+
+
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java
index 094f05a703..bf283256fe 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java
@@ -1,125 +1,125 @@
-/**
- *
- * 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.sdo.api;
-
-import java.util.Map;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import commonj.sdo.DataObject;
-import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.XMLDocument;
-
-/**
- * Helper interface for reading and writing SDO DataObjects from XML streams
- * (StAX).
- *
- * @version $Rev: 503913 $ $Date: 2007-02-05 17:53:34 -0500 (Mon, 05 Feb 2007) $
- */
-public interface XMLStreamHelper {
- /**
- * Creates and returns an XMLDocument from an XML input stream. The reader
- * must be positioned on a START_DOCUMENT event.
- *
- * @param reader the stream to read
- * @return an XMLDocument created from the stream
- * @throws XMLStreamException if there was a problem reading the stream
- * @throws IllegalStateException if the reader is not positioned on a
- * START_DOCUMENT event
- */
- XMLDocument load(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
-
- /**
- * Save a XMLDocument to an XML stream.
- *
- * @param document the document to be written
- * @param writer the stream to write to
- * @throws XMLStreamException if there was a problem writing to the stream
- */
- void save(XMLDocument document, XMLStreamWriter writer) throws XMLStreamException;
-
- void save(XMLDocument document, XMLStreamWriter writer, Map options) throws XMLStreamException;
-
- /**
- * Creates and returns a XMLStreamReader that can be used to read an
- * XMLDocument as a XML event stream. The reader will be positioned on a
- * START_DOCUMENT event.
- *
- * @param document the XMLDocument to be read
- * @return an XMLStreamReader that can be used to read the document
- */
- XMLStreamReader createXMLStreamReader(XMLDocument document) throws XMLStreamException;
-
- /**
- * Create a DataObject from an element in a XML stream. The reader must be
- * positioned on a START_ELEMENT event.
- *
- * @param reader the stream to read
- * @return a DataObject created from the element in the stream
- * @throws XMLStreamException if there was a problem reading the stream
- * @throws IllegalStateException if the reader is not positioned on a
- * START_ELEMENT event
- */
- DataObject loadObject(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
-
- /**
- * Default Type to load DataObject if the element is unqualified/local
- * without xsi:type or the qualified/global element or xsi:type fail to
- * resolve. Can be null.
- */
- String OPTION_DEFAULT_ROOT_TYPE = "default root type";
-
- /**
- * Create a DataObject from an element in a XML stream. The reader must be
- * positioned on a START_ELEMENT event.
- *
- * @param reader the stream to read
- * @param options {@link OPTION_DEFAULT_ROOT_TYPE}; can be null or empty
- * @return a DataObject created from the element in the stream
- * @throws XMLStreamException if there was a problem reading the stream
- * @throws IllegalStateException if the reader is not positioned on a
- * START_ELEMENT event
- */
- DataObject loadObject(XMLStreamReader reader, Map options) throws XMLStreamException, IllegalStateException;
-
- /**
- * Save a DataObject to an XML stream.
- *
- * @param sdo the DataObject to be written
- * @param writer the stream to write to
- * @throws XMLStreamException if there was a problem writing to the stream
- */
- void saveObject(DataObject sdo, XMLStreamWriter writer) throws XMLStreamException;
-
- void saveObject(DataObject sdo, XMLStreamWriter writer, Map options) throws XMLStreamException;
-
- /**
- * Creates and returns a XMLStreamReader that can be used to read a
- * DataObject as a XML event stream. The reader will be positioned on a
- * START_ELEMENT event.
- *
- * @param sdo the DataObject to be read
- * @return an XMLStreamReader that can be used to read the DataObject
- */
- XMLStreamReader createXMLStreamReader(DataObject sdo);
-
- HelperContext getHelperContext();
-}
+/**
+ *
+ * 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.sdo.api;
+
+import java.util.Map;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.XMLDocument;
+
+/**
+ * Helper interface for reading and writing SDO DataObjects from XML streams
+ * (StAX).
+ *
+ * @version $Rev: 503913 $ $Date: 2007-02-05 17:53:34 -0500 (Mon, 05 Feb 2007) $
+ */
+public interface XMLStreamHelper {
+ /**
+ * Creates and returns an XMLDocument from an XML input stream. The reader
+ * must be positioned on a START_DOCUMENT event.
+ *
+ * @param reader the stream to read
+ * @return an XMLDocument created from the stream
+ * @throws XMLStreamException if there was a problem reading the stream
+ * @throws IllegalStateException if the reader is not positioned on a
+ * START_DOCUMENT event
+ */
+ XMLDocument load(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
+
+ /**
+ * Save a XMLDocument to an XML stream.
+ *
+ * @param document the document to be written
+ * @param writer the stream to write to
+ * @throws XMLStreamException if there was a problem writing to the stream
+ */
+ void save(XMLDocument document, XMLStreamWriter writer) throws XMLStreamException;
+
+ void save(XMLDocument document, XMLStreamWriter writer, Map options) throws XMLStreamException;
+
+ /**
+ * Creates and returns a XMLStreamReader that can be used to read an
+ * XMLDocument as a XML event stream. The reader will be positioned on a
+ * START_DOCUMENT event.
+ *
+ * @param document the XMLDocument to be read
+ * @return an XMLStreamReader that can be used to read the document
+ */
+ XMLStreamReader createXMLStreamReader(XMLDocument document) throws XMLStreamException;
+
+ /**
+ * Create a DataObject from an element in a XML stream. The reader must be
+ * positioned on a START_ELEMENT event.
+ *
+ * @param reader the stream to read
+ * @return a DataObject created from the element in the stream
+ * @throws XMLStreamException if there was a problem reading the stream
+ * @throws IllegalStateException if the reader is not positioned on a
+ * START_ELEMENT event
+ */
+ DataObject loadObject(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
+
+ /**
+ * Default Type to load DataObject if the element is unqualified/local
+ * without xsi:type or the qualified/global element or xsi:type fail to
+ * resolve. Can be null.
+ */
+ String OPTION_DEFAULT_ROOT_TYPE = "default root type";
+
+ /**
+ * Create a DataObject from an element in a XML stream. The reader must be
+ * positioned on a START_ELEMENT event.
+ *
+ * @param reader the stream to read
+ * @param options {@link OPTION_DEFAULT_ROOT_TYPE}; can be null or empty
+ * @return a DataObject created from the element in the stream
+ * @throws XMLStreamException if there was a problem reading the stream
+ * @throws IllegalStateException if the reader is not positioned on a
+ * START_ELEMENT event
+ */
+ DataObject loadObject(XMLStreamReader reader, Map options) throws XMLStreamException, IllegalStateException;
+
+ /**
+ * Save a DataObject to an XML stream.
+ *
+ * @param sdo the DataObject to be written
+ * @param writer the stream to write to
+ * @throws XMLStreamException if there was a problem writing to the stream
+ */
+ void saveObject(DataObject sdo, XMLStreamWriter writer) throws XMLStreamException;
+
+ void saveObject(DataObject sdo, XMLStreamWriter writer, Map options) throws XMLStreamException;
+
+ /**
+ * Creates and returns a XMLStreamReader that can be used to read a
+ * DataObject as a XML event stream. The reader will be positioned on a
+ * START_ELEMENT event.
+ *
+ * @param sdo the DataObject to be read
+ * @return an XMLStreamReader that can be used to read the DataObject
+ */
+ XMLStreamReader createXMLStreamReader(DataObject sdo);
+
+ HelperContext getHelperContext();
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java
index 44987f9d7b..606b4c8fc3 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java
@@ -1,49 +1,49 @@
-/**
- *
- * 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.sdo.lib;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-
-import commonj.sdo.helper.HelperContext;
-
-/**
- * This subclass of ObjectInputStream provides a place to store the scope in which
- * it was created.
- */
-public class SDOObjectInputStream extends ObjectInputStream {
-
- private HelperContext helperContext;
-
- public SDOObjectInputStream(InputStream in, HelperContext helperContext) throws IOException{
- super(in);
- this.helperContext = helperContext;
- }
-
- public HelperContext getHelperContext() {
- return helperContext;
- }
-
- public void setHelperContext(HelperContext helperContext) {
- this.helperContext = helperContext;
- }
-
-}
+/**
+ *
+ * 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.sdo.lib;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+
+import commonj.sdo.helper.HelperContext;
+
+/**
+ * This subclass of ObjectInputStream provides a place to store the scope in which
+ * it was created.
+ */
+public class SDOObjectInputStream extends ObjectInputStream {
+
+ private HelperContext helperContext;
+
+ public SDOObjectInputStream(InputStream in, HelperContext helperContext) throws IOException{
+ super(in);
+ this.helperContext = helperContext;
+ }
+
+ public HelperContext getHelperContext() {
+ return helperContext;
+ }
+
+ public void setHelperContext(HelperContext helperContext) {
+ this.helperContext = helperContext;
+ }
+
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java
index 1610e1c6de..05f2105b97 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java
@@ -1,49 +1,49 @@
-/**
- *
- * 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.sdo.lib;
-
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-
-import commonj.sdo.helper.HelperContext;
-
-/**
- * This subclass of ObjectOutputStream provides a place to store the scope in which
- * it was created.
- */
-public class SDOObjectOutputStream extends ObjectOutputStream {
-
- private HelperContext helperContext;
-
- public SDOObjectOutputStream(OutputStream os, HelperContext helperContext) throws IOException{
- super(os);
- this.helperContext = helperContext;
- }
-
- public HelperContext getHelperContext() {
- return helperContext;
- }
-
- public void setHelperContext(HelperContext helperContext) {
- this.helperContext = helperContext;
- }
-
-}
+/**
+ *
+ * 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.sdo.lib;
+
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+
+import commonj.sdo.helper.HelperContext;
+
+/**
+ * This subclass of ObjectOutputStream provides a place to store the scope in which
+ * it was created.
+ */
+public class SDOObjectOutputStream extends ObjectOutputStream {
+
+ private HelperContext helperContext;
+
+ public SDOObjectOutputStream(OutputStream os, HelperContext helperContext) throws IOException{
+ super(os);
+ this.helperContext = helperContext;
+ }
+
+ public HelperContext getHelperContext() {
+ return helperContext;
+ }
+
+ public void setHelperContext(HelperContext helperContext) {
+ this.helperContext = helperContext;
+ }
+
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java
index d95ac681c9..95eabd4b82 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java
@@ -1,70 +1,70 @@
-/**
- *
- * 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.sdo.lib;
-
-import java.util.AbstractList;
-import java.util.Collections;
-import java.util.List;
-
-import commonj.sdo.DataObject;
-
-public class UnknownPropertyList extends AbstractList {
- protected List delegateList = Collections.EMPTY_LIST;
- protected DataObject dataObject;
- protected String path;
-
- public UnknownPropertyList(DataObject dataObject, String path) {
- this.dataObject = dataObject;
- this.path = path;
- }
-
- public Object get(int index) {
- return getDelegateList().get(index);
- }
-
- public int size() {
- return getDelegateList().size();
- }
-
- public Object remove(int index) {
- return getDelegateList().remove(index);
- }
- public Object set(int index, Object element) {
- return getDelegateList().set(index, element);
- }
-
- public void add(int index, Object element) {
- if (getDelegateList() == Collections.EMPTY_LIST && index == 0) {
- dataObject.set(path, Collections.singletonList(element));
- delegateList = (List)dataObject.get(path);
- }
- else {
- delegateList.add(index, element);
- }
- }
-
- protected List getDelegateList() {
- if (delegateList == Collections.EMPTY_LIST) {
- List propertyList = (List)dataObject.get(path);
- if (propertyList != null) delegateList = propertyList;
- }
- return delegateList;
- }
-}
+/**
+ *
+ * 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.sdo.lib;
+
+import java.util.AbstractList;
+import java.util.Collections;
+import java.util.List;
+
+import commonj.sdo.DataObject;
+
+public class UnknownPropertyList extends AbstractList {
+ protected List delegateList = Collections.EMPTY_LIST;
+ protected DataObject dataObject;
+ protected String path;
+
+ public UnknownPropertyList(DataObject dataObject, String path) {
+ this.dataObject = dataObject;
+ this.path = path;
+ }
+
+ public Object get(int index) {
+ return getDelegateList().get(index);
+ }
+
+ public int size() {
+ return getDelegateList().size();
+ }
+
+ public Object remove(int index) {
+ return getDelegateList().remove(index);
+ }
+ public Object set(int index, Object element) {
+ return getDelegateList().set(index, element);
+ }
+
+ public void add(int index, Object element) {
+ if (getDelegateList() == Collections.EMPTY_LIST && index == 0) {
+ dataObject.set(path, Collections.singletonList(element));
+ delegateList = (List)dataObject.get(path);
+ }
+ else {
+ delegateList.add(index, element);
+ }
+ }
+
+ protected List getDelegateList() {
+ if (delegateList == Collections.EMPTY_LIST) {
+ List propertyList = (List)dataObject.get(path);
+ if (propertyList != null) delegateList = propertyList;
+ }
+ return delegateList;
+ }
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java
index 377a348fff..375552497b 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java
@@ -1,246 +1,246 @@
-/**
- *
- * 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.sdo.spi;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.NotSerializableException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.ObjectStreamException;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-import org.apache.tuscany.sdo.api.SDOHelper;
-import org.apache.tuscany.sdo.api.SDOUtil;
-import org.apache.tuscany.sdo.api.XMLStreamHelper;
-import org.apache.tuscany.sdo.lib.SDOObjectInputStream;
-import org.apache.tuscany.sdo.lib.SDOObjectOutputStream;
-
-import commonj.sdo.DataGraph;
-import commonj.sdo.DataObject;
-import commonj.sdo.helper.CopyHelper;
-import commonj.sdo.helper.DataFactory;
-import commonj.sdo.helper.DataHelper;
-import commonj.sdo.helper.EqualityHelper;
-import commonj.sdo.helper.HelperContext;
-import commonj.sdo.helper.TypeHelper;
-import commonj.sdo.helper.XMLDocument;
-import commonj.sdo.helper.XMLHelper;
-import commonj.sdo.helper.XSDHelper;
-import commonj.sdo.impl.HelperProvider;
-import commonj.sdo.impl.ExternalizableDelegator.Resolvable;
-
-
-/**
- * Create and manage all the default helpers
- */
-public abstract class HelperProviderBase extends HelperProvider
-{
- protected CopyHelper copyHelper;
-
- protected DataFactory dataFactory;
-
- protected DataHelper dataHelper;
-
- protected EqualityHelper equalityHelper;
-
- protected TypeHelper typeHelper;
-
- protected XMLHelper xmlHelper;
-
- protected XSDHelper xsdHelper;
-
- protected SDOHelper sdoHelper; // Tuscany extension APIs
-
- protected XMLStreamHelper xmlStreamHelper;
- /**
- * Subclasses must implement this method to initialize the above Helper instance variables
- */
- protected abstract HelperContext createDefaultHelpers();
-
- public HelperProviderBase()
- {
- defaultContext = createDefaultHelpers();
- }
-
- public SDOHelper sdoHelper()
- {
- return sdoHelper;
- }
-
- public CopyHelper copyHelper()
- {
- return copyHelper;
- }
-
- public DataFactory dataFactory()
- {
- return dataFactory;
- }
-
- public DataHelper dataHelper()
- {
- return dataHelper;
- }
-
- public EqualityHelper equalityHelper()
- {
- return equalityHelper;
- }
-
- public TypeHelper typeHelper()
- {
- return typeHelper;
- }
-
- public XMLHelper xmlHelper()
- {
- return xmlHelper;
- }
-
- public XMLStreamHelper xmlStreamHelper()
- {
- return xmlStreamHelper;
- }
- public XSDHelper xsdHelper()
- {
- return xsdHelper;
- }
-
- public Resolvable resolvable()
- {
- return new ResolvableImpl();
- }
-
- public Resolvable resolvable(Object target)
- {
- return new ResolvableImpl(target);
- }
-
- protected class ResolvableImpl implements Resolvable
- {
- protected Object target;
-
- public ResolvableImpl(Object target) { this.target = target; }
-
- public ResolvableImpl() { this.target = null; }
-
- public void writeExternal(ObjectOutput out) throws IOException
- {
- if (target instanceof DataObject)
- {
- writeDataObject((DataObject)target, out);
- }
- else
- {
- throw new NotSerializableException(); // should never happen
- }
- }
-
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- {
- target = readDataObject(in);
- }
-
- public Object readResolve() throws ObjectStreamException
- {
- return target;
- }
-
- protected void writeDataObject(DataObject dataObject, ObjectOutput objectOutput) throws IOException
- {
- DataGraph dataGraph = dataObject.getDataGraph();
- if (dataGraph != null)
- {
- objectOutput.writeByte(0);
- objectOutput.writeUTF(SDOUtil.getXPath(dataObject));
- objectOutput.writeObject(dataGraph);
- }
- else if (dataObject.getContainer() != null)
- {
- objectOutput.writeByte(0);
- objectOutput.writeUTF(SDOUtil.getXPath(dataObject));
- objectOutput.writeObject(dataObject.getRootObject());
- }
- else
- {
- // Root object
- objectOutput.writeByte(1);
-
- ByteArrayOutputStream compressedByteArrayOutputStream = new ByteArrayOutputStream();
- GZIPOutputStream gzipOutputStream = new GZIPOutputStream(compressedByteArrayOutputStream);
- XMLHelper xmlHelperLocal = xmlHelper;
- if(objectOutput instanceof SDOObjectOutputStream)
- {
- xmlHelperLocal = ((SDOObjectOutputStream)objectOutput).getHelperContext().getXMLHelper();
- }
- xmlHelperLocal.save(dataObject, "commonj.sdo", "dataObject", gzipOutputStream);
- gzipOutputStream.close(); // Flush the contents
-
- byte[] byteArray = compressedByteArrayOutputStream.toByteArray();
- objectOutput.writeInt(byteArray.length);
- objectOutput.write(byteArray);
- }
- }
-
- protected DataObject readDataObject(ObjectInput objectInput) throws IOException, ClassNotFoundException
- {
- boolean isRoot = objectInput.readByte() == 1;
- if (isRoot)
- {
- // Root object: [rootXML] = length + XML contents
- int length = objectInput.readInt();
- byte[] compressedBytes = new byte [length];
-
- int index = 0;
- int bytesRead;
- while (index < length) {
- if ((bytesRead = objectInput.read(compressedBytes, index, length-index)) == -1) {
- break;
- }
- index += bytesRead;
- }
-
- GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressedBytes));
- XMLHelper xmlHelperLocal = xmlHelper;
- if (objectInput instanceof SDOObjectInputStream)
- {
- xmlHelperLocal = ((SDOObjectInputStream)objectInput).getHelperContext().getXMLHelper();
- }
- XMLDocument doc = xmlHelperLocal.load(gzipInputStream);
- gzipInputStream.close();
-
- return doc.getRootObject();
- }
- else
- {
- // Non root object: [path] [root]
- String xpath = objectInput.readUTF();
- Object object = objectInput.readObject();
-
- DataObject root = object instanceof DataGraph ? ((DataGraph)object).getRootObject() : (DataObject)object;
- return xpath.equals("") ? root : root.getDataObject(xpath);
- }
- }
- }
-
-}
+/**
+ *
+ * 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.sdo.spi;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.NotSerializableException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.ObjectStreamException;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
+
+import org.apache.tuscany.sdo.api.SDOHelper;
+import org.apache.tuscany.sdo.api.SDOUtil;
+import org.apache.tuscany.sdo.api.XMLStreamHelper;
+import org.apache.tuscany.sdo.lib.SDOObjectInputStream;
+import org.apache.tuscany.sdo.lib.SDOObjectOutputStream;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.DataHelper;
+import commonj.sdo.helper.EqualityHelper;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import commonj.sdo.impl.HelperProvider;
+import commonj.sdo.impl.ExternalizableDelegator.Resolvable;
+
+
+/**
+ * Create and manage all the default helpers
+ */
+public abstract class HelperProviderBase extends HelperProvider
+{
+ protected CopyHelper copyHelper;
+
+ protected DataFactory dataFactory;
+
+ protected DataHelper dataHelper;
+
+ protected EqualityHelper equalityHelper;
+
+ protected TypeHelper typeHelper;
+
+ protected XMLHelper xmlHelper;
+
+ protected XSDHelper xsdHelper;
+
+ protected SDOHelper sdoHelper; // Tuscany extension APIs
+
+ protected XMLStreamHelper xmlStreamHelper;
+ /**
+ * Subclasses must implement this method to initialize the above Helper instance variables
+ */
+ protected abstract HelperContext createDefaultHelpers();
+
+ public HelperProviderBase()
+ {
+ defaultContext = createDefaultHelpers();
+ }
+
+ public SDOHelper sdoHelper()
+ {
+ return sdoHelper;
+ }
+
+ public CopyHelper copyHelper()
+ {
+ return copyHelper;
+ }
+
+ public DataFactory dataFactory()
+ {
+ return dataFactory;
+ }
+
+ public DataHelper dataHelper()
+ {
+ return dataHelper;
+ }
+
+ public EqualityHelper equalityHelper()
+ {
+ return equalityHelper;
+ }
+
+ public TypeHelper typeHelper()
+ {
+ return typeHelper;
+ }
+
+ public XMLHelper xmlHelper()
+ {
+ return xmlHelper;
+ }
+
+ public XMLStreamHelper xmlStreamHelper()
+ {
+ return xmlStreamHelper;
+ }
+ public XSDHelper xsdHelper()
+ {
+ return xsdHelper;
+ }
+
+ public Resolvable resolvable()
+ {
+ return new ResolvableImpl();
+ }
+
+ public Resolvable resolvable(Object target)
+ {
+ return new ResolvableImpl(target);
+ }
+
+ protected class ResolvableImpl implements Resolvable
+ {
+ protected Object target;
+
+ public ResolvableImpl(Object target) { this.target = target; }
+
+ public ResolvableImpl() { this.target = null; }
+
+ public void writeExternal(ObjectOutput out) throws IOException
+ {
+ if (target instanceof DataObject)
+ {
+ writeDataObject((DataObject)target, out);
+ }
+ else
+ {
+ throw new NotSerializableException(); // should never happen
+ }
+ }
+
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
+ {
+ target = readDataObject(in);
+ }
+
+ public Object readResolve() throws ObjectStreamException
+ {
+ return target;
+ }
+
+ protected void writeDataObject(DataObject dataObject, ObjectOutput objectOutput) throws IOException
+ {
+ DataGraph dataGraph = dataObject.getDataGraph();
+ if (dataGraph != null)
+ {
+ objectOutput.writeByte(0);
+ objectOutput.writeUTF(SDOUtil.getXPath(dataObject));
+ objectOutput.writeObject(dataGraph);
+ }
+ else if (dataObject.getContainer() != null)
+ {
+ objectOutput.writeByte(0);
+ objectOutput.writeUTF(SDOUtil.getXPath(dataObject));
+ objectOutput.writeObject(dataObject.getRootObject());
+ }
+ else
+ {
+ // Root object
+ objectOutput.writeByte(1);
+
+ ByteArrayOutputStream compressedByteArrayOutputStream = new ByteArrayOutputStream();
+ GZIPOutputStream gzipOutputStream = new GZIPOutputStream(compressedByteArrayOutputStream);
+ XMLHelper xmlHelperLocal = xmlHelper;
+ if(objectOutput instanceof SDOObjectOutputStream)
+ {
+ xmlHelperLocal = ((SDOObjectOutputStream)objectOutput).getHelperContext().getXMLHelper();
+ }
+ xmlHelperLocal.save(dataObject, "commonj.sdo", "dataObject", gzipOutputStream);
+ gzipOutputStream.close(); // Flush the contents
+
+ byte[] byteArray = compressedByteArrayOutputStream.toByteArray();
+ objectOutput.writeInt(byteArray.length);
+ objectOutput.write(byteArray);
+ }
+ }
+
+ protected DataObject readDataObject(ObjectInput objectInput) throws IOException, ClassNotFoundException
+ {
+ boolean isRoot = objectInput.readByte() == 1;
+ if (isRoot)
+ {
+ // Root object: [rootXML] = length + XML contents
+ int length = objectInput.readInt();
+ byte[] compressedBytes = new byte [length];
+
+ int index = 0;
+ int bytesRead;
+ while (index < length) {
+ if ((bytesRead = objectInput.read(compressedBytes, index, length-index)) == -1) {
+ break;
+ }
+ index += bytesRead;
+ }
+
+ GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressedBytes));
+ XMLHelper xmlHelperLocal = xmlHelper;
+ if (objectInput instanceof SDOObjectInputStream)
+ {
+ xmlHelperLocal = ((SDOObjectInputStream)objectInput).getHelperContext().getXMLHelper();
+ }
+ XMLDocument doc = xmlHelperLocal.load(gzipInputStream);
+ gzipInputStream.close();
+
+ return doc.getRootObject();
+ }
+ else
+ {
+ // Non root object: [path] [root]
+ String xpath = objectInput.readUTF();
+ Object object = objectInput.readObject();
+
+ DataObject root = object instanceof DataGraph ? ((DataGraph)object).getRootObject() : (DataObject)object;
+ return xpath.equals("") ? root : root.getDataObject(xpath);
+ }
+ }
+ }
+
+}
diff --git a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java
index 43c379256c..ce3678d81f 100644
--- a/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java
+++ b/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java
@@ -1,176 +1,176 @@
-/**
- *
- * 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.sdo.spi;
-
-/**
- * Base class for an implementation of the SDOHelper and SDOHelper.MetaDataBuilder interfaces.
- */
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.sdo.api.SDOHelper;
-import org.apache.tuscany.sdo.api.SDOUtil;
-import org.apache.tuscany.sdo.lib.SDOObjectInputStream;
-import org.apache.tuscany.sdo.lib.SDOObjectOutputStream;
-
-import commonj.sdo.DataObject;
-import commonj.sdo.Property;
-import commonj.sdo.helper.HelperContext;
-
-public abstract class SDOHelperBase implements SDOHelper, SDOHelper.MetaDataBuilder
-{
- public HelperContext createHelperContext()
- {
- return createHelperContext(false);
- }
-
- public ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
- {
- return new SDOObjectInputStream(inputStream, helperContext);
- }
-
- public ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
- {
- return new SDOObjectOutputStream(outputStream, helperContext);
- }
-
- public String getXPath(DataObject dataObject)
- {
- StringBuffer path = getXPath(dataObject, new StringBuffer(), dataObject);
- return path.toString();
- }
-
- protected StringBuffer getXPath(DataObject dataObject, StringBuffer path, DataObject root)
- {
- DataObject container = dataObject.getContainer();
- if (container == null)
- return path;
-
- if (container == root)
- throw new IllegalStateException("There is a cycle in the containment hierarchy of " + root);
-
- boolean first = path.length() == 0;
- Property property = dataObject.getContainmentProperty();
- if (SDOUtil.isMany(property, dataObject))
- {
- List list = container.getList(property);
- int pos = list.indexOf(dataObject);
- path.insert(0, property.getName() + "." + pos + (first ? "" : "/"));
- }
- else
- {
- path.insert(0, property.getName() + (first ? "" : "/"));
- }
-
- return getXPath(container, path, root);
- }
-
- public MetaDataBuilder getMetaDataBuilder()
- {
- return this;
- }
-
- //Java instance class to SDO mappings (section 8.1 of the SDO spec)
- protected static Map javaToSdoMappings = new HashMap();
- static {
- javaToSdoMappings.put(boolean.class, "Boolean");
- javaToSdoMappings.put(byte.class, "Byte");
- javaToSdoMappings.put(char.class, "Character");
- javaToSdoMappings.put(Date.class, "Date");
- javaToSdoMappings.put(BigDecimal.class, "Decimal");
- javaToSdoMappings.put(double.class, "Double");
- javaToSdoMappings.put(float.class, "Float");
- javaToSdoMappings.put(int.class, "Int");
- javaToSdoMappings.put(BigInteger.class, "Integer");
- javaToSdoMappings.put(long.class, "Long");
- javaToSdoMappings.put(Object.class, "Object");
- javaToSdoMappings.put(short.class, "Short");
- javaToSdoMappings.put(String.class, "String");
- javaToSdoMappings.put(Boolean.class, "BooleanObject");
- javaToSdoMappings.put(Byte.class, "ByteObject");
- javaToSdoMappings.put(Character.class, "CharacterObject");
- javaToSdoMappings.put(Double.class, "DoubleObject");
- javaToSdoMappings.put(Float.class, "FloatObject");
- javaToSdoMappings.put(Integer.class, "IntObject");
- javaToSdoMappings.put(Long.class, "LongObject");
- javaToSdoMappings.put(Short.class, "ShortObject");
- }
-
- //XSD to SDO mappings (section 9.4 of the SDO spec)
- protected static Map xsdToSdoMappings = new HashMap();
- static {
- xsdToSdoMappings.put("anySimpleType", "Object");
- xsdToSdoMappings.put("anyType", "DataObject");
- xsdToSdoMappings.put("anyURI", "URI");
- xsdToSdoMappings.put("base64Binary", "Bytes");
- xsdToSdoMappings.put("boolean", "Boolean");
- xsdToSdoMappings.put("byte", "Byte");
- xsdToSdoMappings.put("date", "YearMonthDay");
- xsdToSdoMappings.put("dateTime", "DateTime");
- xsdToSdoMappings.put("decimal", "Decimal");
- xsdToSdoMappings.put("double", "Double");
- xsdToSdoMappings.put("duration", "Duration");
- xsdToSdoMappings.put("ENTITIES", "Strings");
- xsdToSdoMappings.put("ENTITY", "String");
- xsdToSdoMappings.put("float", "Float");
- xsdToSdoMappings.put("gDay", "Day");
- xsdToSdoMappings.put("gMonth", "Month");
- xsdToSdoMappings.put("gMonthDay", "MonthDay");
- xsdToSdoMappings.put("gYear", "Year");
- xsdToSdoMappings.put("gYearMonth", "YearMonth");
- xsdToSdoMappings.put("hexBinary", "Bytes");
- xsdToSdoMappings.put("ID","String");
- xsdToSdoMappings.put("IDREF","String");
- xsdToSdoMappings.put("IDREFS","Strings");
- xsdToSdoMappings.put("int","Int");
- xsdToSdoMappings.put("integer","Integer");
- xsdToSdoMappings.put("language","String");
- xsdToSdoMappings.put("long","Long");
- xsdToSdoMappings.put("Name","String");
- xsdToSdoMappings.put("NCName","String");
- xsdToSdoMappings.put("negativeInteger","Integer");
- xsdToSdoMappings.put("NMTOKEN","String");
- xsdToSdoMappings.put("NMTOKENS","Strings");
- xsdToSdoMappings.put("nonNegativeInteger","Integer");
- xsdToSdoMappings.put("nonPositiveInteger","Integer");
- xsdToSdoMappings.put("normalizedString","String");
- xsdToSdoMappings.put("NOTATION","String");
- xsdToSdoMappings.put("positiveInteger","Integer");
- xsdToSdoMappings.put("QName","URI");
- xsdToSdoMappings.put("short","Short");
- xsdToSdoMappings.put("string","String");
- xsdToSdoMappings.put("time","Time");
- xsdToSdoMappings.put("token","String");
- xsdToSdoMappings.put("unsignedByte","Short");
- xsdToSdoMappings.put("unsignedInt","Long");
- xsdToSdoMappings.put("unsignedLong","Integer");
- xsdToSdoMappings.put("unsignedShort","Int");
- }
-
-}
+/**
+ *
+ * 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.sdo.spi;
+
+/**
+ * Base class for an implementation of the SDOHelper and SDOHelper.MetaDataBuilder interfaces.
+ */
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.api.SDOHelper;
+import org.apache.tuscany.sdo.api.SDOUtil;
+import org.apache.tuscany.sdo.lib.SDOObjectInputStream;
+import org.apache.tuscany.sdo.lib.SDOObjectOutputStream;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.helper.HelperContext;
+
+public abstract class SDOHelperBase implements SDOHelper, SDOHelper.MetaDataBuilder
+{
+ public HelperContext createHelperContext()
+ {
+ return createHelperContext(false);
+ }
+
+ public ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
+ {
+ return new SDOObjectInputStream(inputStream, helperContext);
+ }
+
+ public ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
+ {
+ return new SDOObjectOutputStream(outputStream, helperContext);
+ }
+
+ public String getXPath(DataObject dataObject)
+ {
+ StringBuffer path = getXPath(dataObject, new StringBuffer(), dataObject);
+ return path.toString();
+ }
+
+ protected StringBuffer getXPath(DataObject dataObject, StringBuffer path, DataObject root)
+ {
+ DataObject container = dataObject.getContainer();
+ if (container == null)
+ return path;
+
+ if (container == root)
+ throw new IllegalStateException("There is a cycle in the containment hierarchy of " + root);
+
+ boolean first = path.length() == 0;
+ Property property = dataObject.getContainmentProperty();
+ if (SDOUtil.isMany(property, dataObject))
+ {
+ List list = container.getList(property);
+ int pos = list.indexOf(dataObject);
+ path.insert(0, property.getName() + "." + pos + (first ? "" : "/"));
+ }
+ else
+ {
+ path.insert(0, property.getName() + (first ? "" : "/"));
+ }
+
+ return getXPath(container, path, root);
+ }
+
+ public MetaDataBuilder getMetaDataBuilder()
+ {
+ return this;
+ }
+
+ //Java instance class to SDO mappings (section 8.1 of the SDO spec)
+ protected static Map javaToSdoMappings = new HashMap();
+ static {
+ javaToSdoMappings.put(boolean.class, "Boolean");
+ javaToSdoMappings.put(byte.class, "Byte");
+ javaToSdoMappings.put(char.class, "Character");
+ javaToSdoMappings.put(Date.class, "Date");
+ javaToSdoMappings.put(BigDecimal.class, "Decimal");
+ javaToSdoMappings.put(double.class, "Double");
+ javaToSdoMappings.put(float.class, "Float");
+ javaToSdoMappings.put(int.class, "Int");
+ javaToSdoMappings.put(BigInteger.class, "Integer");
+ javaToSdoMappings.put(long.class, "Long");
+ javaToSdoMappings.put(Object.class, "Object");
+ javaToSdoMappings.put(short.class, "Short");
+ javaToSdoMappings.put(String.class, "String");
+ javaToSdoMappings.put(Boolean.class, "BooleanObject");
+ javaToSdoMappings.put(Byte.class, "ByteObject");
+ javaToSdoMappings.put(Character.class, "CharacterObject");
+ javaToSdoMappings.put(Double.class, "DoubleObject");
+ javaToSdoMappings.put(Float.class, "FloatObject");
+ javaToSdoMappings.put(Integer.class, "IntObject");
+ javaToSdoMappings.put(Long.class, "LongObject");
+ javaToSdoMappings.put(Short.class, "ShortObject");
+ }
+
+ //XSD to SDO mappings (section 9.4 of the SDO spec)
+ protected static Map xsdToSdoMappings = new HashMap();
+ static {
+ xsdToSdoMappings.put("anySimpleType", "Object");
+ xsdToSdoMappings.put("anyType", "DataObject");
+ xsdToSdoMappings.put("anyURI", "URI");
+ xsdToSdoMappings.put("base64Binary", "Bytes");
+ xsdToSdoMappings.put("boolean", "Boolean");
+ xsdToSdoMappings.put("byte", "Byte");
+ xsdToSdoMappings.put("date", "YearMonthDay");
+ xsdToSdoMappings.put("dateTime", "DateTime");
+ xsdToSdoMappings.put("decimal", "Decimal");
+ xsdToSdoMappings.put("double", "Double");
+ xsdToSdoMappings.put("duration", "Duration");
+ xsdToSdoMappings.put("ENTITIES", "Strings");
+ xsdToSdoMappings.put("ENTITY", "String");
+ xsdToSdoMappings.put("float", "Float");
+ xsdToSdoMappings.put("gDay", "Day");
+ xsdToSdoMappings.put("gMonth", "Month");
+ xsdToSdoMappings.put("gMonthDay", "MonthDay");
+ xsdToSdoMappings.put("gYear", "Year");
+ xsdToSdoMappings.put("gYearMonth", "YearMonth");
+ xsdToSdoMappings.put("hexBinary", "Bytes");
+ xsdToSdoMappings.put("ID","String");
+ xsdToSdoMappings.put("IDREF","String");
+ xsdToSdoMappings.put("IDREFS","Strings");
+ xsdToSdoMappings.put("int","Int");
+ xsdToSdoMappings.put("integer","Integer");
+ xsdToSdoMappings.put("language","String");
+ xsdToSdoMappings.put("long","Long");
+ xsdToSdoMappings.put("Name","String");
+ xsdToSdoMappings.put("NCName","String");
+ xsdToSdoMappings.put("negativeInteger","Integer");
+ xsdToSdoMappings.put("NMTOKEN","String");
+ xsdToSdoMappings.put("NMTOKENS","Strings");
+ xsdToSdoMappings.put("nonNegativeInteger","Integer");
+ xsdToSdoMappings.put("nonPositiveInteger","Integer");
+ xsdToSdoMappings.put("normalizedString","String");
+ xsdToSdoMappings.put("NOTATION","String");
+ xsdToSdoMappings.put("positiveInteger","Integer");
+ xsdToSdoMappings.put("QName","URI");
+ xsdToSdoMappings.put("short","Short");
+ xsdToSdoMappings.put("string","String");
+ xsdToSdoMappings.put("time","Time");
+ xsdToSdoMappings.put("token","String");
+ xsdToSdoMappings.put("unsignedByte","Short");
+ xsdToSdoMappings.put("unsignedInt","Long");
+ xsdToSdoMappings.put("unsignedLong","Integer");
+ xsdToSdoMappings.put("unsignedShort","Int");
+ }
+
+}
diff --git a/java/sdo/lib/src/main/resources/META-INF/LICENSE.txt b/java/sdo/lib/src/main/resources/META-INF/LICENSE.txt
index e55ca67ba9..9a90d375bc 100644
--- a/java/sdo/lib/src/main/resources/META-INF/LICENSE.txt
+++ b/java/sdo/lib/src/main/resources/META-INF/LICENSE.txt
@@ -1,207 +1,207 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
-
-
-
-
-
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
+
+
+
+
+
diff --git a/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF b/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF
index b1ef8dad66..64cd082dc8 100644
--- a/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF
+++ b/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Specification-Vendor: Apache Software Foundation
Implementation-Vendor: Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Title: tuscany-sdo-lib
-Implementation-Version: ${pom.version}
+Implementation-Version: 1.1-incubating
Bundle-ManifestVersion: 2
Bundle-Name: Tuscany SDO Implementation Library
Bundle-SymbolicName: org.apache.tuscany.sdo.lib
@@ -15,3 +15,5 @@ Require-Bundle: org.apache.tuscany.sdo.spec;visibility:=reexport
Export-Package: org.apache.tuscany.sdo.api,
org.apache.tuscany.sdo.spi,
org.apache.tuscany.sdo.lib
+X-Compile-Source-JDK: 1.4
+X-Compile-Target-JDK: 1.4