You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/04/05 01:48:47 UTC

svn commit: r525642 - in /incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution: ArtifactProcessor.java DefaultArtifactProcessorRegistry.java DefaultStAXArtifactProcessorRegistry.java

Author: jsdelfino
Date: Wed Apr  4 16:48:46 2007
New Revision: 525642

URL: http://svn.apache.org/viewvc?view=rev&rev=525642
Log:
Fixed generics and algorithm to match an artifact processor by model type.

Modified:
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java?view=diff&rev=525642&r1=525641&r2=525642
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/ArtifactProcessor.java Wed Apr  4 16:48:46 2007
@@ -62,6 +62,6 @@
      * Returns the type of model handled by this artifact processor.
      * @return the type of model handled by this artifact processor
      */
-    Class<?> getModelType(); 
+    Class<M> getModelType(); 
     
 }

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java?view=diff&rev=525642&r1=525641&r2=525642
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactProcessorRegistry.java Wed Apr  4 16:48:46 2007
@@ -50,8 +50,14 @@
      * @param modelType a model type
      * @return the processor associated with the given model type
      */
-    protected ArtifactProcessor<S, M, K> getProcessor(Class<?> modelType) {
-        return processorsByModelType.get(modelType);
+    protected ArtifactProcessor<S, M, K> getProcessor(Class<M> modelType) {
+        Class<?>[] classes = modelType.getClasses();
+        for (Class<?> c: classes) {
+            ArtifactProcessor<S, M, K> processor = processorsByModelType.get(c);
+            if (processor != null)
+                return processor;
+        }
+        return null;
     }
 
     public void addArtifactProcessor(ArtifactProcessor<S, M, K> artifactProcessor) {
@@ -59,12 +65,12 @@
     }
     
     public K getArtifactType() {
-        // Will match any type
+        // Will never match
         return null;
     }
     
-    public Class<?> getModelType() {
-        // Will match any type
-        return Object.class;
+    public Class<M> getModelType() {
+        // Will never match
+        return null;
     }
 }

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java?view=diff&rev=525642&r1=525641&r2=525642
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultStAXArtifactProcessorRegistry.java Wed Apr  4 16:48:46 2007
@@ -68,7 +68,7 @@
     public void resolve(Object model, ArtifactResolver resolver) throws ContributionException {
 
         // Delegate to the processor associated with the model type
-        StAXArtifactProcessor<Object> processor = (StAXArtifactProcessor<Object>)this.getProcessor(model.getClass());
+        StAXArtifactProcessor<Object> processor = (StAXArtifactProcessor<Object>)this.getProcessor((Class<Object>)model.getClass());
         if (processor != null) {
             processor.resolve(model, resolver);
         }
@@ -77,7 +77,7 @@
     public void optimize(Object model) throws ContributionException {
 
         // Delegate to the processor associated with the model type
-        StAXArtifactProcessor<Object> processor = (StAXArtifactProcessor<Object>)this.getProcessor(model.getClass());
+        StAXArtifactProcessor<Object> processor = (StAXArtifactProcessor<Object>)this.getProcessor((Class<Object>)model.getClass());
         if (processor != null) {
             processor.optimize(model);
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org