]> source.dussan.org Git - aspectj.git/commitdiff
generics: Holds a generic type reference (used by the raw or parameterized variants)
authoraclement <aclement>
Thu, 23 Jun 2005 07:30:50 +0000 (07:30 +0000)
committeraclement <aclement>
Thu, 23 Jun 2005 07:30:50 +0000 (07:30 +0000)
weaver/src/org/aspectj/weaver/ReferenceType.java

index 7f62a00300b1c52ef528ca4836a481fef3bc4faa..9ac887cc09835aa6e2905bb951c8d59072fcfd49 100644 (file)
@@ -19,6 +19,13 @@ import org.aspectj.bridge.ISourceLocation;
 import org.aspectj.weaver.patterns.PerClause;
 
 public class ReferenceType extends ResolvedTypeX {
+       
+       /**
+        * For parameterized types (or the raw type) - this field points to the actual
+        * reference type from which they are derived.
+        */
+       ReferenceType genericType = null;
+       
        ReferenceTypeDelegate delegate = null;
        ISourceContext sourceContext = null;
        int startPos = 0;
@@ -28,6 +35,16 @@ public class ReferenceType extends ResolvedTypeX {
     public ReferenceType(String signature, World world) {
         super(signature, world);
     }
+       
+       public ReferenceType(ReferenceType genericType,String signature, World world) {
+               super(signature,world);
+               this.genericType=genericType;
+               setDelegate(genericType.getDelegate());
+               // TODO asc generics: for non generic types, should we hold a delegate here or just 
+               // delegate to the one on the generic type? it might let us be a little more flexible 
+               // if we do this - changing just the generic type delegate will affect all parameterized 
+               // and raw variants
+       }
         
     public final boolean isClass() {
        return delegate.isClass();