From: Bill B. <pat...@us...> - 2004-04-26 16:57:13
|
User: patriot1burke Date: 04/04/26 09:57:04 Modified: src/main/org/jboss/aop/pointcut ConstructorMatcher.java FieldMatcher.java MethodMatcher.java Util.java Log: added ! ability to grammar for attributes (public, static, etc...) Revision Changes Path 1.9 +2 -2 jboss-aop/src/main/org/jboss/aop/pointcut/ConstructorMatcher.java Index: ConstructorMatcher.java =================================================================== RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/pointcut/ConstructorMatcher.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ConstructorMatcher.java 18 Apr 2004 15:27:04 -0000 1.8 +++ ConstructorMatcher.java 26 Apr 2004 16:57:03 -0000 1.9 @@ -24,7 +24,7 @@ * Comment * * @author <a href="mailto:bi...@jb...">Bill Burke</a> - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ * **/ public class ConstructorMatcher extends MatcherHelper @@ -72,7 +72,7 @@ for (int i = 0; i < node.getAttributes().size(); i++) { ASTAttribute attr = (ASTAttribute) node.getAttributes().get(i); - if (!Util.matchModifiers(attr.attribute, conModifiers)) return Boolean.FALSE; + if (!Util.matchModifiers(attr, conModifiers)) return Boolean.FALSE; } } if (node.getClazz().isAnnotation()) 1.10 +2 -2 jboss-aop/src/main/org/jboss/aop/pointcut/FieldMatcher.java Index: FieldMatcher.java =================================================================== RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/pointcut/FieldMatcher.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- FieldMatcher.java 18 Apr 2004 15:27:04 -0000 1.9 +++ FieldMatcher.java 26 Apr 2004 16:57:03 -0000 1.10 @@ -22,7 +22,7 @@ * Comment * * @author <a href="mailto:bi...@jb...">Bill Burke</a> - * @version $Revision: 1.9 $ + * @version $Revision: 1.10 $ * **/ public abstract class FieldMatcher extends MatcherHelper @@ -67,7 +67,7 @@ for (int i = 0; i < node.getAttributes().size(); i++) { ASTAttribute attr = (ASTAttribute) node.getAttributes().get(i); - if (!Util.matchModifiers(attr.attribute, fieldModifiers)) + if (!Util.matchModifiers(attr, fieldModifiers)) { return Boolean.FALSE; } 1.9 +2 -2 jboss-aop/src/main/org/jboss/aop/pointcut/MethodMatcher.java Index: MethodMatcher.java =================================================================== RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/pointcut/MethodMatcher.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- MethodMatcher.java 18 Apr 2004 15:27:04 -0000 1.8 +++ MethodMatcher.java 26 Apr 2004 16:57:03 -0000 1.9 @@ -24,7 +24,7 @@ * Comment * * @author <a href="mailto:bi...@jb...">Bill Burke</a> - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ * **/ public class MethodMatcher extends MatcherHelper @@ -78,7 +78,7 @@ for (int i = 0; i < node.getAttributes().size(); i++) { ASTAttribute attr = (ASTAttribute) node.getAttributes().get(i); - if (!Util.matchModifiers(attr.attribute, methodModifiers)) return Boolean.FALSE; + if (!Util.matchModifiers(attr, methodModifiers)) return Boolean.FALSE; } } if (!node.getReturnType().matches(methodReturnType)) return Boolean.FALSE; 1.3 +16 -14 jboss-aop/src/main/org/jboss/aop/pointcut/Util.java Index: Util.java =================================================================== RCS file: /cvsroot/jboss/jboss-aop/src/main/org/jboss/aop/pointcut/Util.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Util.java 11 Mar 2004 06:26:40 -0000 1.2 +++ Util.java 26 Apr 2004 16:57:03 -0000 1.3 @@ -9,13 +9,15 @@ import javassist.CtClass; import javassist.NotFoundException; import org.jboss.aop.pointcut.ast.ClassExpression; +import org.jboss.aop.pointcut.ast.ASTAttribute; + import java.lang.reflect.Modifier; /** * Comment * * @author <a href="mailto:bi...@jb...">Bill Burke</a> - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * **/ public class Util @@ -52,20 +54,20 @@ return subtypeOf(clazz.getSuperclass(), instanceOf); } - public static boolean matchModifiers(int need, int have) + public static boolean matchModifiers(ASTAttribute need, int have) { - if (Modifier.isAbstract(need) && !Modifier.isAbstract(have)) return false; - if (Modifier.isFinal(need) && !Modifier.isFinal(have)) return false; - if (Modifier.isInterface(need) && !Modifier.isInterface(have)) return false; - if (Modifier.isNative(need) && !Modifier.isNative(have)) return false; - if (Modifier.isPrivate(need) && !Modifier.isPrivate(have)) return false; - if (Modifier.isProtected(need) && !Modifier.isProtected(have)) return false; - if (Modifier.isPublic(need) && !Modifier.isPublic(have)) return false; - if (Modifier.isStatic(need) && !Modifier.isStatic(have)) return false; - if (Modifier.isStrict(need) && !Modifier.isStrict(have)) return false; - if (Modifier.isSynchronized(need) && !Modifier.isSynchronized(have)) return false; - if (Modifier.isTransient(need) && !Modifier.isTransient(have)) return false; - if (Modifier.isVolatile(need) && !Modifier.isVolatile(have)) return false; + if (Modifier.isAbstract(need.attribute) && Modifier.isAbstract(have)) return !(need.not); + if (Modifier.isFinal(need.attribute) && Modifier.isFinal(have)) return !(need.not); + if (Modifier.isInterface(need.attribute) && Modifier.isInterface(have)) return !(need.not); + if (Modifier.isNative(need.attribute) && Modifier.isNative(have)) return !(need.not); + if (Modifier.isPrivate(need.attribute) && Modifier.isPrivate(have)) return !(need.not); + if (Modifier.isProtected(need.attribute) && Modifier.isProtected(have)) return !(need.not); + if (Modifier.isPublic(need.attribute) && Modifier.isPublic(have)) return !(need.not); + if (Modifier.isStatic(need.attribute) && Modifier.isStatic(have)) return !(need.not); + if (Modifier.isStrict(need.attribute) && Modifier.isStrict(have)) return !(need.not); + if (Modifier.isSynchronized(need.attribute) && Modifier.isSynchronized(have)) return !(need.not); + if (Modifier.isTransient(need.attribute) && Modifier.isTransient(have)) return !(need.not); + if (Modifier.isVolatile(need.attribute) && Modifier.isVolatile(have)) return !(need.not); return true; } } |