]> source.dussan.org Git - aspectj.git/commitdiff
remove dependency on 1.2 API - runtime libs must work at 1.1 level
authoracolyer <acolyer>
Thu, 10 Mar 2005 10:55:05 +0000 (10:55 +0000)
committeracolyer <acolyer>
Thu, 10 Mar 2005 10:55:05 +0000 (10:55 +0000)
12 files changed:
runtime/src/org/aspectj/lang/reflect/AdviceSignature.java
runtime/src/org/aspectj/lang/reflect/ConstructorSignature.java
runtime/src/org/aspectj/lang/reflect/FieldSignature.java
runtime/src/org/aspectj/lang/reflect/InitializerSignature.java
runtime/src/org/aspectj/lang/reflect/MemberSignature.java
runtime/src/org/aspectj/lang/reflect/MethodSignature.java
runtime/src/org/aspectj/runtime/reflect/AdviceSignatureImpl.java
runtime/src/org/aspectj/runtime/reflect/ConstructorSignatureImpl.java
runtime/src/org/aspectj/runtime/reflect/FieldSignatureImpl.java
runtime/src/org/aspectj/runtime/reflect/InitializerSignatureImpl.java
runtime/src/org/aspectj/runtime/reflect/MemberSignatureImpl.java
runtime/src/org/aspectj/runtime/reflect/MethodSignatureImpl.java

index 8afc4e1aceef86a9c3ac113ffa0f9b043435e9ff..e88aebbba71628a837a0a253a94ea75366934da9 100644 (file)
 
 
 package org.aspectj.lang.reflect;
+import java.lang.reflect.Method;
 
 public interface AdviceSignature extends CodeSignature {
     Class getReturnType();      /* name is consistent with reflection API   */
                                 /* before and after always return Void.TYPE */
                                 /* (some around also return Void.Type)      */
+       Method getAdvice();
 }
index 66ab51397ecd69a36482ad3e33a5e0ccd70986d8..3aea63dffdfaf4e57fdd7e5090516d3f013812c6 100644 (file)
@@ -13,6 +13,8 @@
 
 
 package org.aspectj.lang.reflect;
+import java.lang.reflect.Constructor;
 
 public interface ConstructorSignature extends CodeSignature {
+       Constructor getConstructor();
 }
index d2973543a80f379e223aaee68ecf4bffb4ce0c77..af20d84de7263116609720e68228b6469bbc7676 100644 (file)
@@ -13,7 +13,9 @@
 
 
 package org.aspectj.lang.reflect;
+import java.lang.reflect.Field;
 
 public interface FieldSignature extends MemberSignature {
     public Class getFieldType();
+       public Field getField();
 }
index 2b75f92a6c03aa382608f16c28b717d05741cb19..510a8d2886d0e37e46c2cef73c712928cd7693f0 100644 (file)
@@ -13,5 +13,8 @@
 
 
 package org.aspectj.lang.reflect;
+import java.lang.reflect.Constructor;
 
-public interface InitializerSignature extends CodeSignature { }
+public interface InitializerSignature extends CodeSignature { 
+       Constructor getInitializer();
+}
index fb267e08098a1e7de9133ae82efbbe0a7bfd5bae..1dcae64032b9267cff1824c6ce3f03b0cf033501 100644 (file)
 
 package org.aspectj.lang.reflect;
 
-import java.lang.reflect.AccessibleObject;
-
 import org.aspectj.lang.Signature;
 
 public interface MemberSignature extends Signature {
-       AccessibleObject getAccessibleObject();
+       // AccessibleObject is a 1.2 API, we run on 1.1... (thanks Wes for catching this)
+       //AccessibleObject getAccessibleObject(); 
 }
index f26d6c504713799f7b74dcf50aa4774f34027fa0..ab6b0d4f5724885e7f308e8631f8b8af4aaf4dbe 100644 (file)
@@ -13,7 +13,9 @@
 
 
 package org.aspectj.lang.reflect;
+import java.lang.reflect.Method;
 
 public interface MethodSignature extends CodeSignature {
     Class getReturnType();      /* name is consistent with reflection API */
+       Method getMethod();
 }
index 74bf6e0e4f430e77121b3fd6f8c220530a3e6068..e814a5add1c0322e785a9e670cf6011bd2c0969c 100644 (file)
 
 package org.aspectj.runtime.reflect;
 
-import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Method;
 
 import org.aspectj.lang.reflect.AdviceSignature;
 
 class AdviceSignatureImpl extends CodeSignatureImpl implements AdviceSignature {
     Class returnType;
+       private Method adviceMethod = null;
     
     AdviceSignatureImpl(int modifiers, String name, Class declaringType, 
         Class[] parameterTypes, String[] parameterNames, Class[] exceptionTypes,
@@ -58,12 +59,14 @@ class AdviceSignatureImpl extends CodeSignatureImpl implements AdviceSignature {
     /* (non-Javadoc)
         * @see org.aspectj.runtime.reflect.MemberSignatureImpl#createAccessibleObject()
         */
-       protected AccessibleObject createAccessibleObject() {
-               try {
-                       return declaringType.getDeclaredMethod(getName(),getParameterTypes());
-               } catch (Exception ex) {
-                       ; // nothing we can do, caller will see null
+       public Method getAdvice() {
+               if (adviceMethod == null) {
+                       try {
+                               adviceMethod = declaringType.getDeclaredMethod(getName(),getParameterTypes());
+                       } catch (Exception ex) {
+                               ; // nothing we can do, caller will see null
+                       }
                }
-               return null;
+               return adviceMethod;
        }
 }
index 12ac6ba8e5c47d306aee9959461b8b041238558d..b607df6295f97a63859f28e2e895275d11bca606 100644 (file)
 
 package org.aspectj.runtime.reflect;
 
-import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Constructor;
 
 import org.aspectj.lang.reflect.ConstructorSignature;
 
 class ConstructorSignatureImpl extends CodeSignatureImpl implements ConstructorSignature {
+       private Constructor constructor;
+       
     ConstructorSignatureImpl(int modifiers, Class declaringType, 
         Class[] parameterTypes, String[] parameterNames, Class[] exceptionTypes)
     {
@@ -43,12 +45,14 @@ class ConstructorSignatureImpl extends CodeSignatureImpl implements ConstructorS
     /* (non-Javadoc)
         * @see org.aspectj.runtime.reflect.MemberSignatureImpl#createAccessibleObject()
         */
-       protected AccessibleObject createAccessibleObject() {
-               try {
-                       return declaringType.getDeclaredConstructor(getParameterTypes());
-               } catch (Exception ex) {
-                       ; // nothing we can do, caller will see null
+       public Constructor getConstructor() {
+               if (constructor == null) {
+                       try {
+                               constructor = declaringType.getDeclaredConstructor(getParameterTypes());
+                       } catch (Exception ex) {
+                               ; // nothing we can do, caller will see null
+                       }
                }
-               return null;
+               return constructor;
        }
 }
index 3c14e405033721497d91156ee4a709ee1e8bacf5..ff1e6e452b947c0197872e206640b9484ad1bcdc 100644 (file)
 
 package org.aspectj.runtime.reflect;
  
-import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Field;
 
 import org.aspectj.lang.reflect.FieldSignature;
 
 public class FieldSignatureImpl extends MemberSignatureImpl implements FieldSignature {
     Class fieldType;
+       private Field field;
     
     FieldSignatureImpl(int modifiers, String name, Class declaringType, 
         Class fieldType)
@@ -51,12 +52,14 @@ public class FieldSignatureImpl extends MemberSignatureImpl implements FieldSign
     /* (non-Javadoc)
         * @see org.aspectj.runtime.reflect.MemberSignatureImpl#createAccessibleObject()
         */
-       protected AccessibleObject createAccessibleObject() {
-               try {
-                       return declaringType.getDeclaredField(getName());
-               } catch (Exception ex) {
-                       ; // nothing we can do, caller will see null
+       public Field getField() {
+               if (field == null) {
+                       try {
+                               field = declaringType.getDeclaredField(getName());
+                       } catch (Exception ex) {
+                               ; // nothing we can do, caller will see null
+                       }
                }
-               return null;
+               return field;
        }
 }
index 7b5e41683d53033656900de93d9d056c8be4f96d..dcf1a3131d91a325cd7b2e5a211eaf4dbfea70e8 100644 (file)
@@ -16,10 +16,12 @@ package org.aspectj.runtime.reflect;
 
 import org.aspectj.lang.reflect.InitializerSignature;
 
-import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Modifier;
 
 class InitializerSignatureImpl extends CodeSignatureImpl implements InitializerSignature {
+       private Constructor constructor;
+       
     InitializerSignatureImpl(int modifiers, Class declaringType) {
         super(modifiers, Modifier.isStatic(modifiers) ? "<clinit>" : "<init>", declaringType, EMPTY_CLASS_ARRAY, 
               EMPTY_STRING_ARRAY, EMPTY_CLASS_ARRAY);
@@ -45,12 +47,14 @@ class InitializerSignatureImpl extends CodeSignatureImpl implements InitializerS
     /* (non-Javadoc)
         * @see org.aspectj.runtime.reflect.MemberSignatureImpl#createAccessibleObject()
         */
-       protected AccessibleObject createAccessibleObject() {
-               try {
-                       return declaringType.getDeclaredConstructor(getParameterTypes());
-               } catch (Exception ex) {
-                       ; // nothing we can do, caller will see null
+       public Constructor getInitializer() {
+               if (constructor == null) {
+                       try {
+                               constructor = declaringType.getDeclaredConstructor(getParameterTypes());
+                       } catch (Exception ex) {
+                               ; // nothing we can do, caller will see null
+                       }
                }
-               return null;
+               return constructor;
        }
 }
index 09ebba7fffbfb9bf51657511ca5405603235f054..c49c016e15c4fd06952920dcfeeba4be29fddfeb 100644 (file)
 
 package org.aspectj.runtime.reflect;
 
-import java.lang.reflect.AccessibleObject;
-
 import org.aspectj.lang.reflect.MemberSignature;
 
 abstract class MemberSignatureImpl extends SignatureImpl implements MemberSignature {
-       protected AccessibleObject accessibleObj = null;
        
     MemberSignatureImpl(int modifiers, String name, Class declaringType) {   
         super(modifiers, name, declaringType);
@@ -29,15 +26,4 @@ abstract class MemberSignatureImpl extends SignatureImpl implements MemberSignat
         super(stringRep);
     }
     
-    /* (non-Javadoc)
-        * @see org.aspectj.lang.reflect.MemberSignature#getAccessibleObject()
-        */
-       public AccessibleObject getAccessibleObject() {
-               if (accessibleObj == null) {
-                       accessibleObj = createAccessibleObject();
-               }
-               return accessibleObj;
-       }
-       
-       protected abstract AccessibleObject createAccessibleObject();
 }
index 51ba06237bb25cfa2ff579b98b7780e7fc97966a..3331df08ddfe375f2c1a7f833d3f12911fcc5cdb 100644 (file)
 
 package org.aspectj.runtime.reflect;
 
-import java.lang.reflect.AccessibleObject;
+import java.lang.reflect.Method;
 
 import org.aspectj.lang.reflect.MethodSignature;
 
 class MethodSignatureImpl extends CodeSignatureImpl implements MethodSignature {
+       private Method method;
     Class returnType;
     
     MethodSignatureImpl(int modifiers, String name, Class declaringType, 
@@ -56,12 +57,14 @@ class MethodSignatureImpl extends CodeSignatureImpl implements MethodSignature {
     /* (non-Javadoc)
         * @see org.aspectj.lang.reflect.MemberSignature#getAccessibleObject()
         */
-       public AccessibleObject createAccessibleObject() {
-               try {
-                       return declaringType.getDeclaredMethod(getName(),getParameterTypes());
-               } catch (NoSuchMethodException nsmEx) {
-                       ; // nothing we can do, user will see null return
+       public Method getMethod() {
+               if (method == null) {
+                       try {
+                               method = declaringType.getDeclaredMethod(getName(),getParameterTypes());
+                       } catch (NoSuchMethodException nsmEx) {
+                               ; // nothing we can do, user will see null return
+                       }
                }
-               return null;
+               return method;
        }
 }