]> source.dussan.org Git - aspectj.git/commitdiff
258510: promoted additional annotation/class/interface storage from delegate to refer...
authoraclement <aclement>
Tue, 20 Jan 2009 22:41:41 +0000 (22:41 +0000)
committeraclement <aclement>
Tue, 20 Jan 2009 22:41:41 +0000 (22:41 +0000)
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/AjLookupEnvironment.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java

index 61c145b879585e5ed2a120bf305ae2479eaf43b4..a467c1f6f52a79b4337da6b14f47b48039edff9b 100644 (file)
@@ -126,17 +126,14 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        // ??? duplicates some of super's code
        public void completeTypeBindings() {
                AsmManager.setCompletingTypeBindings(true);
-               ContextToken completeTypeBindingsToken = CompilationAndWeavingContext
-                               .enteringPhase(
-                                               CompilationAndWeavingContext.COMPLETING_TYPE_BINDINGS,
-                                               "");
+               ContextToken completeTypeBindingsToken = CompilationAndWeavingContext.enteringPhase(
+                               CompilationAndWeavingContext.COMPLETING_TYPE_BINDINGS, "");
                // builtInterTypesAndPerClauses = false;
                // pendingTypesToWeave = new ArrayList();
                stepCompleted = BUILD_TYPE_HIERARCHY;
 
                for (int i = lastCompletedUnitIndex + 1; i <= lastUnitIndex; i++) {
-                       ContextToken tok = CompilationAndWeavingContext.enteringPhase(
-                                       CompilationAndWeavingContext.CHECK_AND_SET_IMPORTS,
+                       ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.CHECK_AND_SET_IMPORTS,
                                        units[i].compilationResult.fileName);
                        units[i].scope.checkAndSetImports();
                        CompilationAndWeavingContext.leavingPhase(tok);
@@ -144,8 +141,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                stepCompleted = CHECK_AND_SET_IMPORTS;
 
                for (int i = lastCompletedUnitIndex + 1; i <= lastUnitIndex; i++) {
-                       ContextToken tok = CompilationAndWeavingContext.enteringPhase(
-                                       CompilationAndWeavingContext.CONNECTING_TYPE_HIERARCHY,
+                       ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.CONNECTING_TYPE_HIERARCHY,
                                        units[i].compilationResult.fileName);
                        units[i].scope.connectTypeHierarchy();
                        CompilationAndWeavingContext.leavingPhase(tok);
@@ -153,8 +149,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                stepCompleted = CONNECT_TYPE_HIERARCHY;
 
                for (int i = lastCompletedUnitIndex + 1; i <= lastUnitIndex; i++) {
-                       ContextToken tok = CompilationAndWeavingContext.enteringPhase(
-                                       CompilationAndWeavingContext.BUILDING_FIELDS_AND_METHODS,
+                       ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.BUILDING_FIELDS_AND_METHODS,
                                        units[i].compilationResult.fileName);
                        // units[i].scope.checkParameterizedTypes(); do this check a little
                        // later, after ITDs applied to stbs
@@ -242,9 +237,8 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                        while (typesToProcess.size() > 0) {
                                // A side effect of weaveIntertypes() is that the processed type
                                // is removed from the collection
-                               weaveIntertypes(typesToProcess,
-                                               (SourceTypeBinding) typesToProcess.get(0), typeMungers,
-                                               declareParents, declareAnnotationOnTypes);
+                               weaveIntertypes(typesToProcess, (SourceTypeBinding) typesToProcess.get(0), typeMungers, declareParents,
+                                               declareAnnotationOnTypes);
                        }
 
                } else {
@@ -252,8 +246,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                        for (int i = lastCompletedUnitIndex + 1; i <= lastUnitIndex; i++) {
                                // System.err.println("Working on "+new
                                // String(units[i].getFileName()));
-                               weaveInterTypeDeclarations(units[i].scope, typeMungers,
-                                               declareParents, declareAnnotationOnTypes);
+                               weaveInterTypeDeclarations(units[i].scope, typeMungers, declareParents, declareAnnotationOnTypes);
                        }
                }
 
@@ -264,10 +257,8 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                for (int i = lastCompletedUnitIndex + 1; i <= lastUnitIndex; i++) {
                        SourceTypeBinding[] b = units[i].scope.topLevelTypes;
                        for (int j = 0; j < b.length; j++) {
-                               ContextToken tok = CompilationAndWeavingContext
-                                               .enteringPhase(
-                                                               CompilationAndWeavingContext.RESOLVING_POINTCUT_DECLARATIONS,
-                                                               b[j].sourceName);
+                               ContextToken tok = CompilationAndWeavingContext.enteringPhase(
+                                               CompilationAndWeavingContext.RESOLVING_POINTCUT_DECLARATIONS, b[j].sourceName);
                                resolvePointcutDeclarations(b[j].scope);
                                CompilationAndWeavingContext.leavingPhase(tok);
                        }
@@ -276,10 +267,8 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                for (int i = lastCompletedUnitIndex + 1; i <= lastUnitIndex; i++) {
                        SourceTypeBinding[] b = units[i].scope.topLevelTypes;
                        for (int j = 0; j < b.length; j++) {
-                               ContextToken tok = CompilationAndWeavingContext
-                                               .enteringPhase(
-                                                               CompilationAndWeavingContext.ADDING_DECLARE_WARNINGS_AND_ERRORS,
-                                                               b[j].sourceName);
+                               ContextToken tok = CompilationAndWeavingContext.enteringPhase(
+                                               CompilationAndWeavingContext.ADDING_DECLARE_WARNINGS_AND_ERRORS, b[j].sourceName);
                                addAdviceLikeDeclares(b[j].scope);
                                CompilationAndWeavingContext.leavingPhase(tok);
                        }
@@ -326,7 +315,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        // new Integer(i+1),
        // typeVariables[i].getDisplayName(),
        // superType.getGenericType().getName());
-       //factory.getWorld().getMessageHandler().handleMessage(MessageUtil.error(msg
+       // factory.getWorld().getMessageHandler().handleMessage(MessageUtil.error(msg
        // ,onType.getSourceLocation()));
        // }
        // }
@@ -343,25 +332,21 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                } else if (rb instanceof ParameterizedTypeBinding) {
                        // If its a PTB we need to pull the SourceTypeBinding out of it.
                        ParameterizedTypeBinding ptb = (ParameterizedTypeBinding) rb;
-                       if (ptb.type instanceof SourceTypeBinding
-                                       && yetToProcess.contains(ptb.type)) {
-                               collectAllITDsAndDeclares((SourceTypeBinding) ptb.type,
-                                               yetToProcess);
+                       if (ptb.type instanceof SourceTypeBinding && yetToProcess.contains(ptb.type)) {
+                               collectAllITDsAndDeclares((SourceTypeBinding) ptb.type, yetToProcess);
                        }
                }
        }
 
        /**
-        * Find all the ITDs and Declares, but it is important we do this from the
-        * supertypes down to the subtypes.
+        * Find all the ITDs and Declares, but it is important we do this from the supertypes down to the subtypes.
         * 
         * @param sourceType
         * @param yetToProcess
         */
        private void collectAllITDsAndDeclares(SourceTypeBinding sourceType, Collection yetToProcess) {
                // Look at the supertype first
-               ContextToken tok = CompilationAndWeavingContext.enteringPhase(
-                               CompilationAndWeavingContext.COLLECTING_ITDS_AND_DECLARES,
+               ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.COLLECTING_ITDS_AND_DECLARES,
                                sourceType.sourceName);
 
                yetToProcess.remove(sourceType);
@@ -382,41 +367,32 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        }
 
        /**
-        * Weave the parents and intertype decls into a given type. This method
-        * looks at the supertype and superinterfaces for the specified type and
-        * recurses to weave those first if they are in the full list of types we
-        * are going to process during this compile... it stops recursing the first
-        * time it hits a type we aren't going to process during this compile. This
-        * could cause problems if you supply 'pieces' of a hierarchy, i.e. the
-        * bottom and the top, but not the middle - but what the hell are you doing
-        * if you do that?
+        * Weave the parents and intertype decls into a given type. This method looks at the supertype and superinterfaces for the
+        * specified type and recurses to weave those first if they are in the full list of types we are going to process during this
+        * compile... it stops recursing the first time it hits a type we aren't going to process during this compile. This could cause
+        * problems if you supply 'pieces' of a hierarchy, i.e. the bottom and the top, but not the middle - but what the hell are you
+        * doing if you do that?
         */
-       private void weaveIntertypes(List typesToProcess,
-                       SourceTypeBinding typeToWeave, Collection typeMungers,
+       private void weaveIntertypes(List typesToProcess, SourceTypeBinding typeToWeave, Collection typeMungers,
                        Collection declareParents, Collection declareAnnotationOnTypes) {
                // Look at the supertype first
                ReferenceBinding superType = typeToWeave.superclass();
-               if (typesToProcess.contains(superType)
-                               && superType instanceof SourceTypeBinding) {
+               if (typesToProcess.contains(superType) && superType instanceof SourceTypeBinding) {
                        // System.err.println("Recursing to supertype "+new
                        // String(superType.getFileName()));
-                       weaveIntertypes(typesToProcess, (SourceTypeBinding) superType,
-                                       typeMungers, declareParents, declareAnnotationOnTypes);
+                       weaveIntertypes(typesToProcess, (SourceTypeBinding) superType, typeMungers, declareParents, declareAnnotationOnTypes);
                }
                // Then look at the superinterface list
                ReferenceBinding[] interfaceTypes = typeToWeave.superInterfaces();
                for (int i = 0; i < interfaceTypes.length; i++) {
                        ReferenceBinding binding = interfaceTypes[i];
-                       if (typesToProcess.contains(binding)
-                                       && binding instanceof SourceTypeBinding) {
+                       if (typesToProcess.contains(binding) && binding instanceof SourceTypeBinding) {
                                // System.err.println("Recursing to superinterface "+new
                                // String(binding.getFileName()));
-                               weaveIntertypes(typesToProcess, (SourceTypeBinding) binding,
-                                               typeMungers, declareParents, declareAnnotationOnTypes);
+                               weaveIntertypes(typesToProcess, (SourceTypeBinding) binding, typeMungers, declareParents, declareAnnotationOnTypes);
                        }
                }
-               weaveInterTypeDeclarations(typeToWeave, typeMungers, declareParents,
-                               declareAnnotationOnTypes, false);
+               weaveInterTypeDeclarations(typeToWeave, typeMungers, declareParents, declareAnnotationOnTypes, false);
                typesToProcess.remove(typeToWeave);
        }
 
@@ -497,12 +473,10 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        }
 
        /**
-        * Return true if the declaration has @Aspect annotation. Called 'couldBe'
-        * rather than 'is' because someone else may have defined an annotation
-        * called Aspect - we can't verify the full name (including package name)
-        * because it may not have been resolved just yet and rather going through
-        * expensive resolution when we dont have to, this gives us a cheap check
-        * that tells us whether to bother.
+        * Return true if the declaration has @Aspect annotation. Called 'couldBe' rather than 'is' because someone else may have
+        * defined an annotation called Aspect - we can't verify the full name (including package name) because it may not have been
+        * resolved just yet and rather going through expensive resolution when we dont have to, this gives us a cheap check that tells
+        * us whether to bother.
         */
        private boolean couldBeAnnotationStyleAspectDeclaration(TypeDeclaration dec) {
                Annotation[] annotations = dec.annotations;
@@ -590,8 +564,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        private void weaveInterTypeDeclarations(SourceTypeBinding sourceType, Collection typeMungers, Collection declareParents,
                        Collection declareAnnotationOnTypes, boolean skipInners) {
 
-               ContextToken tok = CompilationAndWeavingContext.enteringPhase(
-                               CompilationAndWeavingContext.WEAVING_INTERTYPE_DECLARATIONS,
+               ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.WEAVING_INTERTYPE_DECLARATIONS,
                                sourceType.sourceName);
 
                ResolvedType onType = factory.fromEclipse(sourceType);
@@ -622,13 +595,11 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                // Check if the type we are looking at is the topMostImplementor of a
                // dangerous interface -
                // report a problem if it is.
-               for (Iterator i = dangerousInterfaces.entrySet().iterator(); i
-                               .hasNext();) {
+               for (Iterator i = dangerousInterfaces.entrySet().iterator(); i.hasNext();) {
                        Map.Entry entry = (Map.Entry) i.next();
                        ResolvedType interfaceType = (ResolvedType) entry.getKey();
                        if (onType.isTopmostImplementor(interfaceType)) {
-                               factory.showMessage(IMessage.ERROR, onType + ": "
-                                               + entry.getValue(), onType.getSourceLocation(), null);
+                               factory.showMessage(IMessage.ERROR, onType + ": " + entry.getValue(), onType.getSourceLocation(), null);
                        }
                }
 
@@ -754,16 +725,13 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        }
 
        /**
-        * Called when we discover we are weaving intertype declarations on some
-        * type that has an existing 'WeaverStateInfo' object - this is typically
-        * some previously woven type that has been passed on the inpath.
+        * Called when we discover we are weaving intertype declarations on some type that has an existing 'WeaverStateInfo' object -
+        * this is typically some previously woven type that has been passed on the inpath.
         * 
         * sourceType and onType are the 'same type' - the former is the 'Eclipse' version and the latter is the 'Weaver' version.
         */
-       private void processTypeMungersFromExistingWeaverState(
-                       SourceTypeBinding sourceType, ResolvedType onType) {
-               Collection previouslyAppliedMungers = onType.getWeaverState()
-                               .getTypeMungers(onType);
+       private void processTypeMungersFromExistingWeaverState(SourceTypeBinding sourceType, ResolvedType onType) {
+               Collection previouslyAppliedMungers = onType.getWeaverState().getTypeMungers(onType);
 
                for (Iterator i = previouslyAppliedMungers.iterator(); i.hasNext();) {
                        ConcreteTypeMunger m = (ConcreteTypeMunger) i.next();
@@ -784,16 +752,14 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.PROCESSING_DECLARE_PARENTS,
                                sourceType.sourceName);
                ResolvedType resolvedSourceType = factory.fromEclipse(sourceType);
-               List newParents = declareParents.findMatchingNewParents(
-                               resolvedSourceType, false);
+               List newParents = declareParents.findMatchingNewParents(resolvedSourceType, false);
                if (!newParents.isEmpty()) {
                        for (Iterator i = newParents.iterator(); i.hasNext();) {
                                ResolvedType parent = (ResolvedType) i.next();
                                if (dangerousInterfaces.containsKey(parent)) {
                                        ResolvedType onType = factory.fromEclipse(sourceType);
-                                       factory.showMessage(IMessage.ERROR, onType + ": "
-                                                       + dangerousInterfaces.get(parent), onType
-                                                       .getSourceLocation(), null);
+                                       factory.showMessage(IMessage.ERROR, onType + ": " + dangerousInterfaces.get(parent),
+                                                       onType.getSourceLocation(), null);
                                }
                                if (Modifier.isFinal(parent.getModifiers())) {
                                        factory.showMessage(IMessage.ERROR, "cannot extend final class " + parent.getClassName(), declareParents
@@ -849,16 +815,14 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                return sb.toString();
        }
 
-       private boolean doDeclareAnnotations(DeclareAnnotation decA,
-                       SourceTypeBinding sourceType, boolean reportProblems) {
+       private boolean doDeclareAnnotations(DeclareAnnotation decA, SourceTypeBinding sourceType, boolean reportProblems) {
                ResolvedType rtx = factory.fromEclipse(sourceType);
                if (!decA.matches(rtx))
                        return false;
                if (!rtx.isExposedToWeaver())
                        return false;
 
-               ContextToken tok = CompilationAndWeavingContext.enteringPhase(
-                               CompilationAndWeavingContext.PROCESSING_DECLARE_ANNOTATIONS,
+               ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.PROCESSING_DECLARE_ANNOTATIONS,
                                sourceType.sourceName);
 
                // Get the annotation specified in the declare
@@ -966,23 +930,16 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
 
                                        if (reportProblems) {
                                                if (decA.isExactPattern()) {
-                                                       factory
-                                                                       .showMessage(
-                                                                                       IMessage.ERROR,
-                                                                                       WeaverMessages
-                                                                                                       .format(
-                                                                                                                       WeaverMessages.INCORRECT_TARGET_FOR_DECLARE_ANNOTATION,
-                                                                                                                       rtx.getName(),
-                                                                                                                       toAdd[0].type,
-                                                                                                                       stringifyTargets(abits)),
-                                                                                       decA.getSourceLocation(), null);
+                                                       factory.showMessage(IMessage.ERROR, WeaverMessages.format(
+                                                                       WeaverMessages.INCORRECT_TARGET_FOR_DECLARE_ANNOTATION, rtx.getName(), toAdd[0].type,
+                                                                       stringifyTargets(abits)), decA.getSourceLocation(), null);
                                                }
                                                // dont put out the lint - the weaving process will do
                                                // that
                                                // else {
                                                // if (factory.getWorld().getLint().
                                                // invalidTargetForAnnotation.isEnabled()) {
-                                               //factory.getWorld().getLint().invalidTargetForAnnotation
+                                               // factory.getWorld().getLint().invalidTargetForAnnotation
                                                // .signal(new
                                                // String[]{rtx.getName(),toAdd[0].type.toString(),
                                                // stringifyTargets
@@ -1008,8 +965,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                if (currentAnnotations != null)
                        for (int i = 0; i < currentAnnotations.length; i++) {
                                Annotation annotation = currentAnnotations[i];
-                               String a = CharOperation
-                                               .toString(annotation.type.getTypeName());
+                               String a = CharOperation.toString(annotation.type.getTypeName());
                                String b = CharOperation.toString(toAdd[0].type.getTypeName());
                                // FIXME asc we have a lint for attempting to add an annotation
                                // twice to a method,
@@ -1076,20 +1032,16 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        }
 
        /**
-        * Transform an annotation from its AJ form to an eclipse form. We *DONT*
-        * care about the values of the annotation. that is because it is only being
-        * stuck on a type during type completion to allow for other constructs
-        * (decps, decas) that might be looking for it - when the class actually
-        * gets to disk it wont have this new annotation on it and during weave time
-        * we will do the right thing copying across values too.
+        * Transform an annotation from its AJ form to an eclipse form. We *DONT* care about the values of the annotation. that is
+        * because it is only being stuck on a type during type completion to allow for other constructs (decps, decas) that might be
+        * looking for it - when the class actually gets to disk it wont have this new annotation on it and during weave time we will do
+        * the right thing copying across values too.
         */
-       private static Annotation createAnnotationFromBcelAnnotation(
-                       AnnotationAJ annX, int pos, EclipseFactory factory) {
+       private static Annotation createAnnotationFromBcelAnnotation(AnnotationAJ annX, int pos, EclipseFactory factory) {
                String name = annX.getTypeName();
                TypeBinding tb = factory.makeTypeBinding(annX.getType());
                // String theName = annX.getSignature().getBaseName();
-               char[][] typeName = CharOperation.splitOn('.', name.replace('$', '.')
-                               .toCharArray()); // pr149293 - not bulletproof...
+               char[][] typeName = CharOperation.splitOn('.', name.replace('$', '.').toCharArray()); // pr149293 - not bulletproof...
                long[] positions = new long[typeName.length];
                for (int i = 0; i < positions.length; i++)
                        positions[i] = pos;
@@ -1220,7 +1172,8 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
                        ReferenceType rt = (ReferenceType) onType;
                        ReferenceTypeDelegate rtd = rt.getDelegate();
                        if (rtd instanceof BcelObjectType) {
-                               ((BcelObjectType) rtd).addParent(parent);
+                               rt.addParent(parent);
+                               // ((BcelObjectType) rtd).addParent(parent);
                        }
                }
 
@@ -1275,9 +1228,8 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
        }
 
        /**
-        * Callback driven when the compiler detects an anonymous type during block
-        * resolution. We need to add it to the weaver so that we don't trip up
-        * later.
+        * Callback driven when the compiler detects an anonymous type during block resolution. We need to add it to the weaver so that
+        * we don't trip up later.
         * 
         * @param aBinding
         */
@@ -1361,7 +1313,7 @@ public class AjLookupEnvironment extends LookupEnvironment implements AnonymousC
 // System.arraycopy(currentlyHas,0,newset,1,currentlyHas.length);
 // }
 // methodDecl.annotations = newset;
-//System.err.println("New set on "+CharOperation.charToString(sourceMb.selector)
+// System.err.println("New set on "+CharOperation.charToString(sourceMb.selector)
 // +" is "+newset);
 // } else
 // System.err.println("NO MATCH");
index c59e8c4fd4579537aa1a317e178cfaf1e43ee86d..cf7b45a1efa9fd7dfb353fbde3b658ffcf24bd8f 100644 (file)
@@ -81,8 +81,7 @@ import org.aspectj.weaver.patterns.PerSingleton;
 import org.aspectj.weaver.patterns.Pointcut;
 
 /**
- * Supports viewing eclipse TypeDeclarations/SourceTypeBindings as a
- * ResolvedType
+ * Supports viewing eclipse TypeDeclarations/SourceTypeBindings as a ResolvedType
  * 
  * @author Jim Hugunin
  */
@@ -358,8 +357,8 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
        }
 
        /**
-        * This method may not return all fields, for example it may not include the
-        * ajc$initFailureCause or ajc$perSingletonInstance fields - see bug 129613
+        * This method may not return all fields, for example it may not include the ajc$initFailureCause or ajc$perSingletonInstance
+        * fields - see bug 129613
         */
        public ResolvedMember[] getDeclaredFields() {
                if (declaredFields == null)
@@ -368,8 +367,8 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
        }
 
        /**
-        * This method may not return all methods, for example it may not include
-        * clinit, aspectOf, hasAspect or ajc$postClinit methods - see bug 129613
+        * This method may not return all methods, for example it may not include clinit, aspectOf, hasAspect or ajc$postClinit methods
+        * - see bug 129613
         */
        public ResolvedMember[] getDeclaredMethods() {
                if (declaredMethods == null)
@@ -464,18 +463,12 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
 
        public boolean isEnum() {
                return (binding.getAccessFlags() & ACC_ENUM) != 0;
-       }
+               }
 
        public boolean isAnnotation() {
                return (binding.getAccessFlags() & ACC_ANNOTATION) != 0;
        }
 
-       public void addAnnotation(AnnotationAJ annotationX) {
-               // XXX Big hole here - annotationX holds a BCEL annotation but
-               // we need an Eclipse one here, we haven't written the conversion utils
-               // yet. Not sure if this method will be called in practice...
-               throw new RuntimeException("EclipseSourceType.addAnnotation() not implemented");
-       }
 
        public boolean isAnnotationWithRuntimeRetention() {
                if (!isAnnotation()) {
@@ -590,23 +583,17 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
        /**
         * WARNING: This method does not have a complete implementation.
         * 
-        * The aim is that it converts Eclipse annotation objects to the AspectJ
-        * form of annotations (the type AnnotationAJ). The AnnotationX objects
-        * returned are wrappers over either a Bcel annotation type or the AspectJ
-        * AnnotationAJ type. The minimal implementation provided here is for
-        * processing the RetentionPolicy and Target annotation types - these are
-        * the only ones which the weaver will attempt to process from an
-        * EclipseSourceType.
+        * The aim is that it converts Eclipse annotation objects to the AspectJ form of annotations (the type AnnotationAJ). The
+        * AnnotationX objects returned are wrappers over either a Bcel annotation type or the AspectJ AnnotationAJ type. The minimal
+        * implementation provided here is for processing the RetentionPolicy and Target annotation types - these are the only ones
+        * which the weaver will attempt to process from an EclipseSourceType.
         * 
-        * More notes: The pipeline has required us to implement this. With the
-        * pipeline we can be weaving a type and asking questions of annotations
-        * before they have been turned into Bcel objects - ie. when they are still
-        * in EclipseSourceType form. Without the pipeline we would have converted
-        * everything to Bcel objects before proceeding with weaving. Because the
-        * pipeline won't start weaving until all aspects have been compiled and the
-        * fact that no AspectJ constructs match on the values within annotations,
-        * this code only needs to deal with converting system annotations that the
-        * weaver needs to process (RetentionPolicy, Target).
+        * More notes: The pipeline has required us to implement this. With the pipeline we can be weaving a type and asking questions
+        * of annotations before they have been turned into Bcel objects - ie. when they are still in EclipseSourceType form. Without
+        * the pipeline we would have converted everything to Bcel objects before proceeding with weaving. Because the pipeline won't
+        * start weaving until all aspects have been compiled and the fact that no AspectJ constructs match on the values within
+        * annotations, this code only needs to deal with converting system annotations that the weaver needs to process
+        * (RetentionPolicy, Target).
         */
        public AnnotationAJ[] getAnnotations() {
                if (annotations != null)
@@ -625,14 +612,11 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
        }
 
        /**
-        * Convert one eclipse annotation into an AnnotationX object containing an
-        * AnnotationAJ object.
+        * Convert one eclipse annotation into an AnnotationX object containing an AnnotationAJ object.
         * 
-        * This code and the helper methods used by it will go *BANG* if they
-        * encounter anything not currently supported - this is safer than limping
-        * along with a malformed annotation. When the *BANG* is encountered the bug
-        * reporter should indicate the kind of annotation they were working with
-        * and this code can be enhanced to support it.
+        * This code and the helper methods used by it will go *BANG* if they encounter anything not currently supported - this is safer
+        * than limping along with a malformed annotation. When the *BANG* is encountered the bug reporter should indicate the kind of
+        * annotation they were working with and this code can be enhanced to support it.
         */
        public AnnotationAJ convertEclipseAnnotation(Annotation eclipseAnnotation, World w) {
                // TODO if it is sourcevisible, we shouldn't let it through!!!!!!!!!
@@ -652,8 +636,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
        }
 
        /**
-        * Use the information in the supplied eclipse based annotation to fill in
-        * the standard annotation.
+        * Use the information in the supplied eclipse based annotation to fill in the standard annotation.
         * 
         * @param annotation eclipse based annotation representation
         * @param annotationAJ AspectJ based annotation representation
@@ -1044,8 +1027,4 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
                return tv;
        }
 
-       public void ensureDelegateConsistent() {
-               // do nothing, currently these can't become inconsistent (phew)
-       }
-
 }