From 2a444004802173fa97afbc389fc4a6600b6d3f88 Mon Sep 17 00:00:00 2001 From: lresende Date: Tue, 10 Nov 2009 19:19:55 +0000 Subject: moving SDO branches git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@834614 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/tuscany/sdo/api/Event.java | 63 --- .../org/apache/tuscany/sdo/api/EventListener.java | 33 -- .../java/org/apache/tuscany/sdo/api/SDOHelper.java | 452 --------------------- .../java/org/apache/tuscany/sdo/api/SDOUtil.java | 445 -------------------- .../apache/tuscany/sdo/api/XMLStreamHelper.java | 125 ------ .../java/org/apache/tuscany/sdo/api/overview.html | 38 -- .../tuscany/sdo/lib/SDOObjectInputStream.java | 49 --- .../tuscany/sdo/lib/SDOObjectOutputStream.java | 49 --- .../tuscany/sdo/lib/UnknownPropertyList.java | 70 ---- .../apache/tuscany/sdo/spi/HelperProviderBase.java | 246 ----------- .../org/apache/tuscany/sdo/spi/SDOHelperBase.java | 176 -------- 11 files changed, 1746 deletions(-) delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/Event.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/EventListener.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/overview.html delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java delete mode 100644 branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java (limited to 'branches/sdo-1.1-incubating/lib/src/main/java/org') diff --git a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/Event.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/Event.java deleted file mode 100644 index 4b4d0c4050..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/Event.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * - * 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 commonj.sdo.Property; - -/** - * An experimental Tuscany API interface, subject to possible change, - * to permit notification of change events on a DataObject instance - */ -public interface Event { - - Object getNotifier(); - - /** - * constants returned from getEventType() - */ - int SET = 1; - int UNSET = 2; - int ADD = 3; - int REMOVE = 4; - int ADD_MANY = 5; - int REMOVE_MANY = 6; - int MOVE = 7; - int REMOVE_LISTENER = 8; - - int getEventType(); - - /** - * get the Property for which the value changed - */ - Property getProperty(); - Object getOldValue(); - Object getNewValue(); - - /* - * returns true if the Property value was in state "set" before this change occurred. - */ - boolean wasSet(); - boolean isTouch(); - - int NO_INDEX = -1; - int getPosition(); - - } - diff --git a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/EventListener.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/EventListener.java deleted file mode 100644 index cfb534eaf0..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/EventListener.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * - * 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; - -/** - * An experimental Tuscany API interface, subject to possible change. - * Can be registered with a DataObject instance to permit change - * notifications for Property values of the DataObject. - * @see SDOHelper#addChangeListener(commonj.sdo.DataObject, EventListener) - * - */ -public interface EventListener { - - public void eventNotification(Event e); - -} diff --git a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java deleted file mode 100644 index 17d9a08a87..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java +++ /dev/null @@ -1,452 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java deleted file mode 100644 index 54f86aafbd..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java +++ /dev/null @@ -1,445 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java deleted file mode 100644 index bf283256fe..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java +++ /dev/null @@ -1,125 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/overview.html b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/overview.html deleted file mode 100644 index c6bd255b8f..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/api/overview.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - Tuscany API extensions to Service Data Objects (SDO) - - -

Tuscany API extensions to Service Data Objects (SDO)

-

Overview

-

-The "org.apache.tuscany.sdo.api" package represents Tuscany API for SDO Java -above and beyond what is offered by the SDO API itself. The contents of this -project provide a means to achieve operations that are not currently addressed -by the SDO API. -

-

-The SDOUtil class simply provides a set of static convenince methods for -exercising the methods of a default instance of the SDOHelper interface. -

- - diff --git a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java deleted file mode 100644 index 606b4c8fc3..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectInputStream.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java deleted file mode 100644 index 05f2105b97..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/SDOObjectOutputStream.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java deleted file mode 100644 index 95eabd4b82..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/lib/UnknownPropertyList.java +++ /dev/null @@ -1,70 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java deleted file mode 100644 index 375552497b..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/HelperProviderBase.java +++ /dev/null @@ -1,246 +0,0 @@ -/** - * - * 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/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java b/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java deleted file mode 100644 index ce3678d81f..0000000000 --- a/branches/sdo-1.1-incubating/lib/src/main/java/org/apache/tuscany/sdo/spi/SDOHelperBase.java +++ /dev/null @@ -1,176 +0,0 @@ -/** - * - * 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"); - } - -} -- cgit v1.2.3