Author: rfeng
Date: Tue Aug 21 16:28:11 2007
New Revision: 568325
URL: http://svn.apache.org/viewvc?rev=568325&view=rev
Log:
Fix the regression: we need to resolve the objects against the existing models
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java
Modified:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java?rev=568325&r1=568324&r2=568325&view=diff
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java
(original)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java
Tue Aug 21 16:28:11 2007
@@ -45,12 +45,14 @@
* @param resolvers
* @param contribution
*/
- public ExtensibleModelResolver(Contribution contribution,
ModelResolverExtensionPoint resolvers, ModelFactoryExtensionPoint factories) {
+ public ExtensibleModelResolver(Contribution contribution,
+ ModelResolverExtensionPoint resolvers,
+ ModelFactoryExtensionPoint factories) {
this.contribution = contribution;
this.resolvers = resolvers;
this.factories = factories;
}
-
+
/**
* Returns the proper resolver instance based on the interfaces of the
model
* If one is not available on the registry, instantiate on demand
@@ -62,28 +64,29 @@
// Look up a model resolver instance for the model class or
// each implemented interface
Class<?>[] interfaces = modelType.getInterfaces();
- Class<?>[] classes = new Class<?>[interfaces.length +1];
+ Class<?>[] classes = new Class<?>[interfaces.length + 1];
classes[0] = modelType;
- if (interfaces.length !=0) {
+ if (interfaces.length != 0) {
System.arraycopy(interfaces, 0, classes, 1, interfaces.length);
}
for (Class<?> c : classes) {
-
+
// Look up an existing model resolver instance
ModelResolver resolverInstance = resolverInstances.get(c);
if (resolverInstance != null) {
return resolverInstance;
}
-
+
// We don't have an instance, lookup a model resolver class
// and instantiate it
Class<? extends ModelResolver> resolverClass =
resolvers.getResolver(c);
if (resolverClass != null) {
try {
- Constructor<? extends ModelResolver> constructor =
resolverClass.getConstructor(
-
new Class[]{Contribution.class,
ModelFactoryExtensionPoint.class});
+ Constructor<? extends ModelResolver> constructor =
+ resolverClass
+ .getConstructor(new Class[] {Contribution.class,
ModelFactoryExtensionPoint.class});
if (constructor != null) {
-
+
// Construct the model resolver instance and cache it
resolverInstance =
constructor.newInstance(contribution, factories);
resolverInstances.put(c, resolverInstance);
@@ -91,13 +94,13 @@
}
} catch (Exception e) {
throw new IllegalStateException(e);
- }
+ }
}
- }
+ }
return null;
}
-
+
public void addModel(Object resolved) {
ModelResolver resolver = getModelResolverInstance(resolved.getClass());
if (resolver != null) {
@@ -115,23 +118,25 @@
return map.remove(resolved);
}
}
-
+
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
ModelResolver resolver =
getModelResolverInstance(unresolved.getClass());
if (resolver != null) {
return resolver.resolveModel(modelClass, unresolved);
} else {
- if ( domainResolver != null ) {
- return domainResolver.resolveModel(modelClass, unresolved);
- } else {
- Object resolved = map.get(unresolved);
+ if (domainResolver != null) {
+ Object resolved = domainResolver.resolveModel(modelClass,
unresolved);
if (resolved != null) {
- // Return the resolved object
return modelClass.cast(resolved);
}
}
+ Object resolved = map.get(unresolved);
+ if (resolved != null) {
+ // Return the resolved object
+ return modelClass.cast(resolved);
+ }
}
-
+
return unresolved;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]