aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2002-12-20 22:49:11 +0000
committerjhugunin <jhugunin>2002-12-20 22:49:11 +0000
commit2c8295af23b94a7eaff57abf206f52abdc1dd02e (patch)
treef7030f3b5e06a565d67024546778e34e65b96c9b /org.aspectj.ajdt.core
parent9081949c3aca2636eab2598b57ddbda16563dcee (diff)
downloadaspectj-2c8295af23b94a7eaff57abf206f52abdc1dd02e.tar.gz
aspectj-2c8295af23b94a7eaff57abf206f52abdc1dd02e.zip
fixed rules for overriding/inheriting pointcuts
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java
index f0c37813b..40d3448cc 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseObjectType.java
@@ -17,8 +17,10 @@ import java.util.*;
import org.aspectj.ajdt.internal.compiler.ast.*;
import org.aspectj.ajdt.internal.compiler.ast.PointcutDeclaration;
+import org.aspectj.bridge.*;
import org.aspectj.bridge.MessageUtil;
import org.aspectj.weaver.*;
+import org.eclipse.jdt.internal.compiler.ast.*;
import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration;
import org.eclipse.jdt.internal.compiler.lookup.*;
@@ -152,10 +154,20 @@ public class EclipseObjectType extends ResolvedTypeX.Name {
//now check all inherited pointcuts to be sure that they're handled reasonably
if (!isAspect()) return;
-// for (Iterator i = getSuperclass().getFields(); )
-// XXX
-
+
+ // find all pointcuts that override ones from super and check override is legal
+ // i.e. same signatures and greater or equal visibility
+ // find all inherited abstract pointcuts and make sure they're concretized if I'm concrete
+ // find all inherited pointcuts and make sure they don't conflict
+ getExposedPointcuts();
+
}
+ public ISourceLocation getSourceLocation() {
+ if (!(binding instanceof SourceTypeBinding)) return null;
+ SourceTypeBinding sourceType = (SourceTypeBinding)binding;
+ TypeDeclaration dec = sourceType.scope.referenceContext;
+ return new EclipseSourceLocation(dec.compilationResult, dec.sourceStart, dec.sourceEnd);
+ }
}