Author: rfeng
Date: Thu Nov 26 00:44:25 2009
New Revision: 884348
URL: http://svn.apache.org/viewvc?rev=884348&view=rev
Log:
Call all of visitXXX methods on the visitors one by one so that a visitor is
always invoked before the other one
Modified:
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaClassIntrospectorImpl.java
Modified:
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaClassIntrospectorImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaClassIntrospectorImpl.java?rev=884348&r1=884347&r2=884348&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaClassIntrospectorImpl.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/impl/JavaClassIntrospectorImpl.java
Thu Nov 26 00:44:25 2009
@@ -70,72 +70,60 @@
*/
public void introspectClass(JavaImplementation type, Class<?> clazz)
throws IntrospectionException {
- for (JavaClassVisitor extension : visitors) {
- extension.visitClass(clazz, type);
- }
-
- for (Constructor<?> constructor : clazz.getConstructors()) {
- for (JavaClassVisitor extension : visitors) {
- extension.visitConstructor(constructor, type);
+ for (JavaClassVisitor visitor : visitors) {
+ visitor.visitClass(clazz, type);
+ for (Constructor<?> constructor : clazz.getConstructors()) {
+ visitor.visitConstructor(constructor, type);
// Assuming the visitClass or visitConstructor will populate
the
// type.getConstructors
JavaConstructorImpl<?> definition =
type.getConstructors().get(constructor);
if (definition != null) {
for (JavaParameterImpl p : definition.getParameters()) {
- extension.visitConstructorParameter(p, type);
+ visitor.visitConstructorParameter(p, type);
}
}
}
- }
- Set<Field> fields =
JavaIntrospectionHelper.getAllPublicAndProtectedFields(clazz, true);
- for (Field field : fields) {
- for (JavaClassVisitor extension : visitors) {
- extension.visitField(field, type);
+ Set<Field> fields =
JavaIntrospectionHelper.getAllPublicAndProtectedFields(clazz, true);
+ for (Field field : fields) {
+ visitor.visitField(field, type);
}
- }
- // Check if any private fields have illegal annotations that should be
raised as errors
- Set<Field> privateFields =
JavaIntrospectionHelper.getPrivateFields(clazz);
- for (Field field : privateFields) {
- for (JavaClassVisitor processor : visitors) {
- processor.visitField(field, type);
+ // Check if any private fields have illegal annotations that
should be raised as errors
+ Set<Field> privateFields =
JavaIntrospectionHelper.getPrivateFields(clazz);
+ for (Field field : privateFields) {
+ visitor.visitField(field, type);
}
- }
-
- Set<Method> methods =
JavaIntrospectionHelper.getAllUniquePublicProtectedMethods(clazz, true);
- for (Method method : methods) {
- for (JavaClassVisitor processor : visitors) {
- processor.visitMethod(method, type);
+
+ Set<Method> methods =
JavaIntrospectionHelper.getAllUniquePublicProtectedMethods(clazz, true);
+ for (Method method : methods) {
+ visitor.visitMethod(method, type);
}
- }
- // Check if any private methods have illegal annotations that should
be raised as errors
- Set<Method> privateMethods =
JavaIntrospectionHelper.getPrivateMethods(clazz);
- for (Method method : privateMethods) {
- for (JavaClassVisitor processor : visitors) {
- processor.visitMethod(method, type);
+ // Check if any private methods have illegal annotations that
should be raised as errors
+ Set<Method> privateMethods =
JavaIntrospectionHelper.getPrivateMethods(clazz);
+ for (Method method : privateMethods) {
+ visitor.visitMethod(method, type);
}
- }
- Class<?> superClass = clazz.getSuperclass();
- if (superClass != null) {
- visitSuperClass(superClass, type);
- }
+ Class<?> superClass = clazz.getSuperclass();
+ if (superClass != null) {
+ visitSuperClass(superClass, type, visitor);
+ }
+
+ visitor.visitEnd(clazz, type);
- for (JavaClassVisitor extension : visitors) {
- extension.visitEnd(clazz, type);
}
+
}
- private void visitSuperClass(Class<?> clazz, JavaImplementation type)
throws IntrospectionException {
+ private void visitSuperClass(Class<?> clazz, JavaImplementation type,
JavaClassVisitor visitor)
+ throws IntrospectionException {
if (!Object.class.equals(clazz)) {
- for (JavaClassVisitor extension : visitors) {
- extension.visitSuperClass(clazz, type);
- }
+ visitor.visitSuperClass(clazz, type);
clazz = clazz.getSuperclass();
if (clazz != null) {
- visitSuperClass(clazz, type);
+ visitSuperClass(clazz, type, visitor);
}
}
}