public static short WEAVER_VERSION_MAJOR_AJ150M4 = 3;
public static short WEAVER_VERSION_MAJOR_AJ150 = 2;
public static short WEAVER_VERSION_MINOR_AJ150 = 0;
+
+ // These are the weaver major/minor numbers for AspectJ 1.6.0
+ public static short WEAVER_VERSION_MAJOR_AJ160 = 4;
+ public static short WEAVER_VERSION_MINOR_AJ160 = 0;
+
// These are the weaver major/minor versions for *this* weaver
- private static short CURRENT_VERSION_MAJOR = WEAVER_VERSION_MAJOR_AJ150M4;
- private static short CURRENT_VERSION_MINOR = WEAVER_VERSION_MINOR_AJ150;
+ private static short CURRENT_VERSION_MAJOR = WEAVER_VERSION_MAJOR_AJ160;
+ private static short CURRENT_VERSION_MINOR = WEAVER_VERSION_MINOR_AJ160;
public static final WeaverVersionInfo UNKNOWN =
new WeaverVersionInfo(WEAVER_VERSION_MAJOR_UNKNOWN,WEAVER_VERSION_MINOR_UNKNOWN);
public UnresolvedType[] getParameterTypes() {
return realMember.getParameterTypes();
}
+
+ public AnnotationX[][] getParameterAnnotations() {
+ return realMember.getParameterAnnotations();
+ }
+
+ public ResolvedType[][] getParameterAnnotationTypes() {
+ return realMember.getParameterAnnotationTypes();
+ }
public String getSignature() {
return realMember.getSignature();
public static final Kind MONITORENTER = new Kind("MONITORENTER", 8);
public static final Kind MONITOREXIT = new Kind("MONITOREXIT", 9);
-
+ public static final AnnotationX[][] NO_PARAMETER_ANNOTATIONXS = new AnnotationX[][]{};
+ public static final ResolvedType[][] NO_PARAMETER_ANNOTATION_TYPES = new ResolvedType[][]{};
+
public ResolvedMember resolve(World world);
public int compareTo(Object other);
public UnresolvedType[] getParameterTypes();
+ public AnnotationX[][] getParameterAnnotations();
+ public ResolvedType[][] getParameterAnnotationTypes();
+
/**
* Return full signature, including return type, e.g. "()LFastCar;" for a signature without the return type,
* use getParameterSignature() - it is importnant to choose the right one in the face of covariance.
* @see org.aspectj.weaver.Member#getParameterTypes()
*/
public UnresolvedType[] getParameterTypes() { return parameterTypes; }
+
+ public AnnotationX[][] getParameterAnnotations() {
+ throw new UnsupportedOperationException("You should resolve this member and call getParameterAnnotations() on the result...");
+ }
+ public ResolvedType[][] getParameterAnnotationTypes() {
+ throw new UnsupportedOperationException("You should resolve this member and call getParameterAnnotationTypes() on the result...");
+ }
/* (non-Javadoc)
* @see org.aspectj.weaver.Member#getSignature()
*/
protected ResolvedMember backingGenericMember = null;
protected Set annotationTypes = null;
+ protected ResolvedType[][] parameterAnnotationTypes = null;
+
// Some members are 'created' to represent other things (for example ITDs). These
// members have their annotations stored elsewhere, and this flag indicates that is
// the case. It is up to the caller to work out where that is!
}
}
+ public ResolvedType[][] getParameterAnnotationTypes() {
+ if (parameterAnnotationTypes == null) return null;
+ return parameterAnnotationTypes;
+ }
+
+ public AnnotationX[][] getParameterAnnotations() {
+ if (backingGenericMember != null) return backingGenericMember.getParameterAnnotations();
+ return super.getParameterAnnotations();
+ }
+
public void addAnnotation(AnnotationX annotation) {
// FIXME asc only allows for annotation types, not instances - should it?
if (annotationTypes == null) annotationTypes = new HashSet();