Hi Andy, Thanks for the clarification. I'll take a look and get it back to you If I still have issues or questions.
All the best, Henrique On Wed, Oct 8, 2014 at 4:36 PM, Andy Clement <andrew.clem...@gmail.com> wrote: > It is a bit more advanced than simple pattern matching, but it is reusable > with certain constraints. The matching is separate to the weaving, captured > in the org.aspectj.matcher.jar that we ship. It does rely on a 'world' > (based on a class path) in order to resolve type references because we > support patterns that need to know about type relationships. Here is an > example test case we have (from > https://github.com/eclipse/org.aspectj/blob/93c58e39cf0512d0920c37a40026a6aa5f1ff26b/org.aspectj.matcher/testsrc/org/aspectj/matcher/tools/CommonPointcutExpressionTests.java > ): > > public void testMethodExecutionMatching02() { > > checkAlwaysMatches("execution(* *val*(..))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > checkAlwaysMatches("execution(String *(..))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > checkAlwaysMatches("execution(* *(boolean))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > checkAlwaysMatches("execution(* j*..*.valueOf(..))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > checkAlwaysMatches("execution(* *(*))", "java.lang.String", "valueOf", > "(Z)Ljava/lang/String;"); > > > checkNeverMatches("execution(* vulueOf(..))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > checkNeverMatches("execution(int *(..))", "java.lang.String", "valueOf", > "(Z)Ljava/lang/String;"); > > checkNeverMatches("execution(* valueOf(String))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > checkNeverMatches("execution(private * valueOf(..))", "java.lang.String", > "valueOf", "(Z)Ljava/lang/String;"); > > } > > > The method 'checkAlwaysMatches' constructs a pointcut expression from the > first string: > > > StandardPointcutExpression ex = > pointcutParser.parsePointcutExpression(pointcutExpression); > > > Then uses the world to retrieve the specified member (e.g. "String > valueOf(boolean)" from the String class, in the case of the first test > entry there: > > > ResolvedType resolvedType = world.resolve(type); > > ResolvedMember method = getMethod(resolvedType, methodName, > methodSignature); > > > Then compares the two: > > > boolean b = ex.matchesMethodExecution(method).alwaysMatches(); > > > Using it without a world of types, I'm not sure about that. > > > cheers, > > Andy > > > > > On 7 October 2014 13:22, Henrique Rebêlo <h...@cin.ufpe.br> wrote: > >> Hi Andy and all, >> >> I was wondering if there is a way to reuse/use explicitly the ajc code >> responsible for pattern matching. That is, given a method signature pattern >> (using wildcarding etc) in some format (like String etc) and a method >> signature (also in some format), I want to know if that method signature >> pattern matches such method signature. >> >> For example: >> >> Given a signature pattern like "void C.set(..)" and a method signature >> like "void C.set(int, int)" I want to return "true" for this query. >> >> Does AspectJ use Regular expressions or something like to perform such >> pattern matching? I just want to reuse such feature... >> >> All the best, >> Henrique >> >> >> >> -- >> >> ............................................................................................................................... >> Henrique Rebelo >> http://www.cin.ufpe.br/~hemr >> Informatics Center, UFPE, Brazil >> >> _______________________________________________ >> aspectj-users mailing list >> aspectj-users@eclipse.org >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > > > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/aspectj-users > -- ............................................................................................................................... Henrique Rebelo http://www.cin.ufpe.br/~hemr Informatics Center, UFPE, Brazil
_______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users