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]

Reply via email to