]> source.dussan.org Git - aspectj.git/commitdiff
269286: handles for anno style elements: less than optimal fix but need something...
authoraclement <aclement>
Fri, 27 Mar 2009 17:35:00 +0000 (17:35 +0000)
committeraclement <aclement>
Fri, 27 Mar 2009 17:35:00 +0000 (17:35 +0000)
asm/src/org/aspectj/asm/IProgramElement.java
asm/src/org/aspectj/asm/internal/HandleProviderDelimiter.java
asm/src/org/aspectj/asm/internal/ProgramElement.java

index f13759b12866d54e54cabcdfc59ddcbb4f07e3ec..9e077cf56ab8c5d065dc6bd36c75044d8830364c 100644 (file)
@@ -395,4 +395,7 @@ public interface IProgramElement extends Serializable {
                        return this == PACKAGE_DECLARATION;
                }
        }
+
+       public void setAnnotationStyleDeclaration(boolean b);
+       public boolean isAnnotationStyleDeclaration();
 }
\ No newline at end of file
index 33152f4b8660e0bf27c9446c5d874e6827d904d6..a187e2f0c18c8f74c7fc9879f7dc8c8adbd72045 100644 (file)
@@ -88,7 +88,11 @@ public class HandleProviderDelimiter {
                                || kind.equals(IProgramElement.Kind.ENUM) || kind.equals(IProgramElement.Kind.ANNOTATION)) {
                        return TYPE.getDelimiter();
                } else if (kind.equals(IProgramElement.Kind.ASPECT)) {
-                       return ASPECT_TYPE.getDelimiter();
+                       if (ipe.isAnnotationStyleDeclaration()) {
+                               return TYPE.getDelimiter();
+                       } else {
+                               return ASPECT_TYPE.getDelimiter();
+                       }
                } else if (kind.equals(IProgramElement.Kind.INITIALIZER)) {
                        return INITIALIZER.getDelimiter();
                } else if (kind.equals(IProgramElement.Kind.INTER_TYPE_FIELD) || kind.equals(IProgramElement.Kind.INTER_TYPE_METHOD)
@@ -99,9 +103,17 @@ public class HandleProviderDelimiter {
                } else if (kind.equals(IProgramElement.Kind.FIELD) || kind.equals(IProgramElement.Kind.ENUM_VALUE)) {
                        return FIELD.getDelimiter();
                } else if (kind.equals(IProgramElement.Kind.POINTCUT)) {
-                       return POINTCUT.getDelimiter();
+                       if (ipe.isAnnotationStyleDeclaration()) {
+                               return METHOD.getDelimiter();
+                       } else {
+                               return POINTCUT.getDelimiter();
+                       }
                } else if (kind.equals(IProgramElement.Kind.ADVICE)) {
-                       return ADVICE.getDelimiter();
+                       if (ipe.isAnnotationStyleDeclaration()) {
+                               return METHOD.getDelimiter();
+                       } else {
+                               return ADVICE.getDelimiter();
+                       }
                } else if (kind.equals(IProgramElement.Kind.DECLARE_PARENTS) || kind.equals(IProgramElement.Kind.DECLARE_WARNING)
                                || kind.equals(IProgramElement.Kind.DECLARE_ERROR) || kind.equals(IProgramElement.Kind.DECLARE_SOFT)
                                || kind.equals(IProgramElement.Kind.DECLARE_PRECEDENCE)
index 4c6bcd37b5e76682bdd4ebadf7c0723b20c5c36c..537b8254c1cb3ed9c5f960fab9a17193c96b356d 100644 (file)
@@ -646,4 +646,17 @@ public class ProgramElement implements IProgramElement {
        public ExtraInformation getExtraInfo() {
                return (ExtraInformation) kvpairs.get("ExtraInformation");
        }
+
+       public boolean isAnnotationStyleDeclaration() {
+               return kvpairs.get("annotationStyleDeclaration")!=null;
+       }
+
+       public void setAnnotationStyleDeclaration(boolean b) {          
+               if (b) {
+                       if (kvpairs == Collections.EMPTY_MAP) {
+                               kvpairs = new HashMap();
+                       }
+                       kvpairs.put("annotationStyleDeclaration", "true");
+               }
+       }
 }