aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2005-03-10 17:52:39 +0000
committeraclement <aclement>2005-03-10 17:52:39 +0000
commitbdb151a442a2606ad37640c4307ba1429514c8dd (patch)
tree68548f6dc6fdf53b477e34c7afaa65012af218a4 /weaver
parent5d8ffc2c706139a7e4622a6442f2e0fbf5ffe9e1 (diff)
downloadaspectj-bdb151a442a2606ad37640c4307ba1429514c8dd.tar.gz
aspectj-bdb151a442a2606ad37640c4307ba1429514c8dd.zip
Declare annotation: uses the new annotation type munger
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
index d8e755a8c..61df9e161 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java
@@ -33,6 +33,7 @@ import org.aspectj.bridge.Message;
import org.aspectj.bridge.MessageUtil;
import org.aspectj.bridge.WeaveMessage;
import org.aspectj.weaver.AjcMemberMaker;
+import org.aspectj.weaver.AnnotationOnTypeMunger;
import org.aspectj.weaver.AsmRelationshipProvider;
import org.aspectj.weaver.ConcreteTypeMunger;
import org.aspectj.weaver.Member;
@@ -86,6 +87,8 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
changed = mungeNewConstructor(weaver, (NewConstructorTypeMunger)munger);
} else if (munger.getKind() == ResolvedTypeMunger.Parent) {
changed = mungeNewParent(weaver, (NewParentTypeMunger)munger);
+ } else if (munger.getKind() == ResolvedTypeMunger.AnnotationOnType) {
+ changed = mungeNewAnnotationOnType(weaver,(AnnotationOnTypeMunger)munger);
} else {
throw new RuntimeException("unimplemented");
}
@@ -152,6 +155,12 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
}
return path.substring(takefrom+1);
}
+
+ private boolean mungeNewAnnotationOnType(BcelClassWeaver weaver,AnnotationOnTypeMunger munger) {
+ // FIXME asc this has already been done up front, need to do it here too?
+ weaver.getLazyClassGen().addAnnotation(munger.getNewAnnotation().getBcelAnnotation());
+ return true;
+ }
/**
* For a long time, AspectJ did not allow binary weaving of declare parents. This restriction is now lifted