Author: meerajk
Date: Mon Feb 19 15:21:24 2007
New Revision: 509377
URL: http://svn.apache.org/viewvc?view=rev&rev=509377
Log:
Added more behavior to the model marshaller registry
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java?view=diff&rev=509377&r1=509376&r2=509377
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/marshaller/DefaultModelMarshallerRegistry.java
Mon Feb 19 15:21:24 2007
@@ -18,51 +18,74 @@
*/
package org.apache.tuscany.core.marshaller;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
import org.apache.tuscany.spi.marshaller.ModelMarshaller;
import org.apache.tuscany.spi.marshaller.ModelMarshallerRegistry;
-import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
+import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
/**
- * Default map-based implementation of the model marshaller registry.
- *
- * TODO may be we can factor out all the registries into a parameterized one.
+ * Default map-based implementation of the model marshaller registry.
*
* @version $Rev$ $Date$
*/
-public class DefaultModelMarshallerRegistry<P extends
PhysicalComponentDefinition> implements ModelMarshallerRegistry {
+public class DefaultModelMarshallerRegistry implements ModelMarshallerRegistry
{
+
+ /**
+ * Gets a marshaller for marshalling.
+ *
+ * @param <MD> Model object type.
+ * @param modelClass Model obejct class.
+ * @return Model object marshaller.
+ */
+ public <MD extends ModelObject> ModelMarshaller<MD>
getMarshaller(Class<MD> modelClass) {
+ return null;
+ }
- // Internal cache
- private Map<Class<? extends PhysicalComponentDefinition>,
- ModelMarshaller<? extends PhysicalComponentDefinition>> registry =
- new ConcurrentHashMap<Class<? extends PhysicalComponentDefinition>,
- ModelMarshaller<? extends PhysicalComponentDefinition>>();
+ /**
+ * Gets a marshaller for unmarshalling.
+ *
+ * @param <MD> Model object type.
+ * @param qname Qualified name of the root element of the marshalled XML.
+ * @return Model object marshaller.
+ */
+ public <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(QName
qname) {
+ return null;
+ }
+
+ /**
+ * Marshalls a physical change set.
+ *
+ * @param changeSet Physical chaneg set to be marshalled.
+ * @param writer Writer to which marshalled information is written.
+ */
+ public void marshall(PhysicalChangeSet changeSet, XMLStreamWriter writer) {
+ }
/**
- * Registers a physical component definition marshaller.
+ * Registers a model object marshaller.
*
- * @param <PCD> Physical component definition.
- * @param modelClass Physical component definition class.
- * @param marshaller Marshaller responsible for marshalling.
+ * @param <MD> Model object type.
+ * @param modelClass Model obejct class.
+ * @param qname Qualified name of the root element of the marshalled XML.
+ * @param marshaller Model object marshaller.
*/
- public <PCD extends PhysicalComponentDefinition> void
registerMarshaller(Class<PCD> modelClass,
-
ModelMarshaller<PCD> marshaller) {
- registry.put(modelClass, marshaller);
+ public <MD extends ModelObject> void registerMarshaller(Class<MD>
modelClass,
+ QName qname,
+
ModelMarshaller<MD> marshaller) {
}
/**
- * Gets a marshaller for marshalling the registered type.
+ * Unmarshalls an XML stream to a physical change set.
*
- * @param <PCD> Physical component definition.
- * @param modelClass Type of the physical model definition that needs to be
- * marshalled.
- * @return Marshaller capable for marshalling the specified type.
+ * @param reader Reader from which marshalled information is read.
+ * @return Physical chnage set from the marshalled stream.
*/
- @SuppressWarnings("unchecked")
- public <PCD extends PhysicalComponentDefinition> ModelMarshaller<PCD>
getMarshaller(Class<PCD> modelClass) {
- return (ModelMarshaller<PCD>)registry.get(modelClass);
+ public PhysicalChangeSet unmarshall(XMLStreamReader reader) {
+ return null;
}
}
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java?view=diff&rev=509377&r1=509376&r2=509377
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java
(original)
+++
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshaller.java
Mon Feb 19 15:21:24 2007
@@ -21,7 +21,7 @@
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
-import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
+import org.apache.tuscany.spi.model.ModelObject;
/**
* Interface for marshalling/unmarshalling internal physical component
definitions.
@@ -29,7 +29,7 @@
* @version $Rev$ $Date$
*
*/
-public interface ModelMarshaller<PCD extends PhysicalComponentDefinition> {
+public interface ModelMarshaller<MD extends ModelObject> {
/**
* Marshalls the physical component definition to the specified stream
writer.
@@ -38,7 +38,7 @@
* @param writer Stream writer to which the infoset is serialized.
* @throws MarshalException In case of any marshalling error.
*/
- void marshall(PCD modelObject, XMLStreamWriter writer) throws
MarshalException;
+ void marshall(MD modelObject, XMLStreamWriter writer) throws
MarshalException;
/**
* Unmarshalls an XML stream to a model object.
@@ -47,6 +47,6 @@
* @return Physical component definition.
* @throws MarshalException In case of any unmarshalling error.
*/
- PCD unmarshall(XMLStreamReader reader) throws MarshalException;
+ MD unmarshall(XMLStreamReader reader) throws MarshalException;
}
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java?view=diff&rev=509377&r1=509376&r2=509377
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java
(original)
+++
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/marshaller/ModelMarshallerRegistry.java
Mon Feb 19 15:21:24 2007
@@ -18,33 +18,62 @@
*/
package org.apache.tuscany.spi.marshaller;
-import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.model.physical.PhysicalChangeSet;
/**
- * A registry for physical component definition marshallers.
+ * A registry for model object marshallers.
*
* @version $Rev$ $Date$
*/
public interface ModelMarshallerRegistry {
/**
- * Registers a physical component definition marshaller.
+ * Registers a model object marshaller.
+ *
+ * @param <MD> Model object type.
+ * @param modelClass Model obejct class.
+ * @param qname Qualified name of the root element of the marshalled XML.
+ * @param marshaller Model object marshaller.
+ */
+ <MD extends ModelObject> void registerMarshaller(Class<MD> modelClass,
QName qname, ModelMarshaller<MD> marshaller);
+
+ /**
+ * Gets a marshaller for marshalling.
+ *
+ * @param <MD> Model object type.
+ * @param modelClass Model obejct class.
+ * @return Model object marshaller.
+ */
+ <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(Class<MD>
modelClass);
+
+ /**
+ * Gets a marshaller for unmarshalling.
+ *
+ * @param <MD> Model object type.
+ * @param qname Qualified name of the root element of the marshalled XML.
+ * @return Model object marshaller.
+ */
+ <MD extends ModelObject> ModelMarshaller<MD> getMarshaller(QName qname);
+
+ /**
+ * Marshalls a physical change set.
*
- * @param <PCD> Physical component definition.
- * @param modelClass Physical component definition class.
- * @param marshaller Marshaller responsible for marshalling.
+ * @param changeSet Physical chaneg set to be marshalled.
+ * @param writer Writer to which marshalled information is written.
*/
- <PCD extends PhysicalComponentDefinition> void
registerMarshaller(Class<PCD> modelClass,
-
ModelMarshaller<PCD> marshaller);
+ void marshall(PhysicalChangeSet changeSet, XMLStreamWriter writer);
/**
- * Gets a marshaller for marshalling the registered type.
+ * Unmarshalls an XML stream to a physical change set.
*
- * @param <PCD> Physical component definition.
- * @param modelClass Type of the physical model definition that needs to be
- * marshalled.
- * @return Marshaller capable for marshalling the specified type.
+ * @param reader Reader from which marshalled information is read.
+ * @return Physical chnage set from the marshalled stream.
*/
- <PCD extends PhysicalComponentDefinition> ModelMarshaller<PCD>
getMarshaller(Class<PCD> modelClass);
+ PhysicalChangeSet unmarshall(XMLStreamReader reader);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]