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