diff options
-rw-r--r-- | weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java b/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java index 504f03001..2a9f73202 100644 --- a/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java @@ -17,6 +17,8 @@ import java.io.DataOutputStream; import java.io.IOException; import org.aspectj.weaver.patterns.Pointcut; +import org.aspectj.weaver.patterns.FastMatchInfo; +import org.aspectj.util.FuzzyBoolean; public class PerObjectInterfaceTypeMunger extends ResolvedTypeMunger { private ResolvedMember getMethod; @@ -60,8 +62,15 @@ public class PerObjectInterfaceTypeMunger extends ResolvedTypeMunger { } public boolean matches(ResolvedTypeX matchType, ResolvedTypeX aspectType) { - //??? this matches many more types than are needed - return !matchType.isInterface(); - } + //FIXME ATAJ waiting Andy patch... + // comment from Andy - this is hard to fix... + + // right now I filter @AJ aspect else it end up with duplicate members + return !matchType.isInterface() && !matchType.isAnnotationStyleAspect(); + } + + private FuzzyBoolean isWithinType(ResolvedTypeX type) { + return testPointcut.fastMatch(new FastMatchInfo(type, null)); + } } |