]> source.dussan.org Git - aspectj.git/commitdiff
hopefully the last of the array gremlins in the reflection based world...
authoracolyer <acolyer>
Fri, 28 Oct 2005 08:25:47 +0000 (08:25 +0000)
committeracolyer <acolyer>
Fri, 28 Oct 2005 08:25:47 +0000 (08:25 +0000)
weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegateFactory.java
weaver/testsrc/org/aspectj/weaver/reflect/ReflectionWorldTest.java

index 619e5099ab8524c86130b007462d8c1ad4f000a3..a59d4796e3ff9de2d47f1b7b4dc747856f80ad0c 100644 (file)
@@ -80,9 +80,9 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
        
        public static ResolvedMember createResolvedMethod(Method aMethod, World inWorld) {
                ReflectionBasedResolvedMemberImpl ret = new ReflectionBasedResolvedMemberImpl(org.aspectj.weaver.Member.METHOD,
-                               inWorld.resolve(aMethod.getDeclaringClass().getName()),
+                               toResolvedType(aMethod.getDeclaringClass(),(ReflectionWorld)inWorld),
                                aMethod.getModifiers(),
-                               inWorld.resolve(aMethod.getReturnType().getName()),
+                               toResolvedType(aMethod.getReturnType(),(ReflectionWorld)inWorld),
                                aMethod.getName(),
                                toResolvedTypeArray(aMethod.getParameterTypes(),inWorld),
                                toResolvedTypeArray(aMethod.getExceptionTypes(),inWorld),
@@ -93,9 +93,9 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
        
        public static ResolvedMember createResolvedAdviceMember(Method aMethod, World inWorld) {
                return new ReflectionBasedResolvedMemberImpl(org.aspectj.weaver.Member.ADVICE,
-                               inWorld.resolve(aMethod.getDeclaringClass().getName()),
+                               toResolvedType(aMethod.getDeclaringClass(),(ReflectionWorld)inWorld),
                                aMethod.getModifiers(),
-                               inWorld.resolve(aMethod.getReturnType().getName()),
+                               toResolvedType(aMethod.getReturnType(),(ReflectionWorld)inWorld),
                                aMethod.getName(),
                                toResolvedTypeArray(aMethod.getParameterTypes(),inWorld),
                                toResolvedTypeArray(aMethod.getExceptionTypes(),inWorld),
@@ -105,7 +105,7 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
        
        public static ResolvedMember createStaticInitMember(Class forType, World inWorld) {
                return new ResolvedMemberImpl(org.aspectj.weaver.Member.STATIC_INITIALIZATION,
-                               inWorld.resolve(forType.getName()),
+                               toResolvedType(forType,(ReflectionWorld)inWorld),
                                Modifier.STATIC,
                                ResolvedType.VOID,
                                "<clinit>",
@@ -116,9 +116,9 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
 
        public static ResolvedMember createResolvedConstructor(Constructor aConstructor, World inWorld) {
                return new ReflectionBasedResolvedMemberImpl(org.aspectj.weaver.Member.CONSTRUCTOR,
-                               inWorld.resolve(aConstructor.getDeclaringClass().getName()),
+                               toResolvedType(aConstructor.getDeclaringClass(),(ReflectionWorld)inWorld),
                                aConstructor.getModifiers(),
-                               inWorld.resolve(aConstructor.getDeclaringClass().getName()),
+                               toResolvedType(aConstructor.getDeclaringClass(),(ReflectionWorld)inWorld),
                                "init",
                                toResolvedTypeArray(aConstructor.getParameterTypes(),inWorld),
                                toResolvedTypeArray(aConstructor.getExceptionTypes(),inWorld),
@@ -128,9 +128,9 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
 
        public static ResolvedMember createResolvedField(Field aField, World inWorld) {
                return new ReflectionBasedResolvedMemberImpl(org.aspectj.weaver.Member.FIELD,
-                               inWorld.resolve(aField.getDeclaringClass().getName()),
+                               toResolvedType(aField.getDeclaringClass(),(ReflectionWorld)inWorld),
                                aField.getModifiers(),
-                               inWorld.resolve(aField.getType().getName()),
+                               toResolvedType(aField.getType(),(ReflectionWorld)inWorld),
                                aField.getName(),
                                new UnresolvedType[0],
                                aField);
@@ -139,11 +139,15 @@ public class ReflectionBasedReferenceTypeDelegateFactory {
        public static ResolvedMember createHandlerMember(Class exceptionType, Class inType,World inWorld) {
                return new ResolvedMemberImpl(
                                org.aspectj.weaver.Member.HANDLER,
-                               inWorld.resolve(inType.getName()),
+                               toResolvedType(inType,(ReflectionWorld)inWorld),
                                Modifier.STATIC,
                                "<catch>",
                                "(" + inWorld.resolve(exceptionType.getName()).getSignature() + ")V");
        }
+       
+       private static ResolvedType toResolvedType(Class aClass, ReflectionWorld aWorld) {
+               return aWorld.resolve(aClass);
+       }
 
        private static ResolvedType[] toResolvedTypeArray(Class[] classes, World inWorld) {
                ResolvedType[] ret = new ResolvedType[classes.length];
index 662d9beb25816506824e86139580d15519ba87f3..ba7f9441d89e4e0cae3dd5459d1ff1a72a5d6b9d 100644 (file)
@@ -27,9 +27,9 @@ public class ReflectionWorldTest extends TestCase {
        }
        
        public void testArrayTypes() {
-               World world = new ReflectionWorld();
+               ReflectionWorld world = new ReflectionWorld();
                String[] strArray = new String[1];
-               ResolvedType rt = world.resolve(UnresolvedType.forSignature(strArray.getClass().getName()));
+               ResolvedType rt = world.resolve(strArray.getClass());
                assertTrue(rt.isArray());
        }