Browse Source

enhancements to signature to support getAccessibleMember() (see ajdk:annotations)

tags/V1_5_0M2
acolyer 19 years ago
parent
commit
89ef2959b7

+ 3
- 0
runtime/src/org/aspectj/lang/reflect/MemberSignature.java View File

@@ -14,7 +14,10 @@

package org.aspectj.lang.reflect;

import java.lang.reflect.AccessibleObject;

import org.aspectj.lang.Signature;

public interface MemberSignature extends Signature {
AccessibleObject getAccessibleObject();
}

+ 14
- 0
runtime/src/org/aspectj/runtime/reflect/AdviceSignatureImpl.java View File

@@ -14,6 +14,8 @@

package org.aspectj.runtime.reflect;

import java.lang.reflect.AccessibleObject;

import org.aspectj.lang.reflect.AdviceSignature;

class AdviceSignatureImpl extends CodeSignatureImpl implements AdviceSignature {
@@ -52,4 +54,16 @@ class AdviceSignatureImpl extends CodeSignatureImpl implements AdviceSignature {
sm.addThrows(buf, getExceptionTypes());
return buf.toString();
}
/* (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
}
return null;
}
}

+ 14
- 0
runtime/src/org/aspectj/runtime/reflect/ConstructorSignatureImpl.java View File

@@ -14,6 +14,8 @@

package org.aspectj.runtime.reflect;

import java.lang.reflect.AccessibleObject;

import org.aspectj.lang.reflect.ConstructorSignature;

class ConstructorSignatureImpl extends CodeSignatureImpl implements ConstructorSignature {
@@ -37,4 +39,16 @@ class ConstructorSignatureImpl extends CodeSignatureImpl implements ConstructorS
sm.addThrows(buf, getExceptionTypes());
return buf.toString();
}
/* (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
}
return null;
}
}

+ 14
- 0
runtime/src/org/aspectj/runtime/reflect/FieldSignatureImpl.java View File

@@ -14,6 +14,8 @@

package org.aspectj.runtime.reflect;
import java.lang.reflect.AccessibleObject;

import org.aspectj.lang.reflect.FieldSignature;

public class FieldSignatureImpl extends MemberSignatureImpl implements FieldSignature {
@@ -45,4 +47,16 @@ public class FieldSignatureImpl extends MemberSignatureImpl implements FieldSign
buf.append(getName());
return buf.toString();
}
/* (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
}
return null;
}
}

+ 13
- 0
runtime/src/org/aspectj/runtime/reflect/InitializerSignatureImpl.java View File

@@ -16,6 +16,7 @@ package org.aspectj.runtime.reflect;

import org.aspectj.lang.reflect.InitializerSignature;

import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Modifier;

class InitializerSignatureImpl extends CodeSignatureImpl implements InitializerSignature {
@@ -40,4 +41,16 @@ class InitializerSignatureImpl extends CodeSignatureImpl implements InitializerS
buf.append(getName());
return buf.toString();
}
/* (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
}
return null;
}
}

+ 16
- 0
runtime/src/org/aspectj/runtime/reflect/MemberSignatureImpl.java View File

@@ -14,9 +14,13 @@

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);
}
@@ -24,4 +28,16 @@ abstract class MemberSignatureImpl extends SignatureImpl implements MemberSignat
public MemberSignatureImpl(String stringRep) {
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();
}

+ 14
- 0
runtime/src/org/aspectj/runtime/reflect/MethodSignatureImpl.java View File

@@ -14,6 +14,8 @@

package org.aspectj.runtime.reflect;

import java.lang.reflect.AccessibleObject;

import org.aspectj.lang.reflect.MethodSignature;

class MethodSignatureImpl extends CodeSignatureImpl implements MethodSignature {
@@ -50,4 +52,16 @@ class MethodSignatureImpl extends CodeSignatureImpl implements MethodSignature {
sm.addThrows(buf, getExceptionTypes());
return buf.toString();
}
/* (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
}
return null;
}
}

Loading…
Cancel
Save