KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > pattern > PatternHelper


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tc.pattern;
5
6 import com.tc.aspectwerkz.expression.ExpressionContext;
7 import com.tc.aspectwerkz.expression.ExpressionVisitor;
8 import com.tc.aspectwerkz.reflect.ClassInfo;
9 import com.tc.aspectwerkz.reflect.MemberInfo;
10 import com.tc.aspectwerkz.reflect.MethodInfo;
11 import com.tc.object.bytecode.aspectwerkz.AsmMethodInfo;
12 import com.tc.object.bytecode.aspectwerkz.ClassInfoFactory;
13 import com.tc.object.bytecode.aspectwerkz.ExpressionHelper;
14
15 public class PatternHelper {
16   private static PatternHelper m_helper = new PatternHelper();
17   private ExpressionHelper m_expressionHelper;
18   private ClassInfoFactory m_classInfoFactory;
19
20   public static final PatternHelper getHelper() {
21     return m_helper;
22   }
23
24   private PatternHelper() {
25     m_expressionHelper = new ExpressionHelper();
26     m_classInfoFactory = new ClassInfoFactory();
27   }
28
29   public ExpressionContext createExecutionExpressionContext(final MemberInfo methodInfo) {
30     return m_expressionHelper.createExecutionExpressionContext(methodInfo);
31   }
32
33   public boolean matchesMethod(final String JavaDoc expr, final ExpressionContext exprCntx) {
34     try {
35       String JavaDoc execExpr = ExpressionHelper.expressionPattern2ExecutionExpression(expr);
36       ExpressionVisitor visitor = m_expressionHelper.createExpressionVisitor(execExpr);
37
38       return visitor.match(exprCntx);
39     } catch (Exception JavaDoc e) {
40       return false;
41     }
42   }
43
44   public boolean matchesMember(final String JavaDoc expr, final MemberInfo methodInfo) {
45     return matchesMethod(expr, m_expressionHelper.createExecutionExpressionContext(methodInfo));
46   }
47
48   public ExpressionContext createWithinExpressionContext(final String JavaDoc className) {
49     return createWithinExpressionContext(m_classInfoFactory.getClassInfo(className));
50   }
51
52   public ExpressionContext createWithinExpressionContext(final ClassInfo classInfo) {
53     return m_expressionHelper.createWithinExpressionContext(classInfo);
54   }
55
56   public boolean matchesClass(final String JavaDoc expr, final ExpressionContext exprCntx) {
57     try {
58       String JavaDoc withinExpr = ExpressionHelper.expressionPattern2WithinExpression(expr);
59       ExpressionVisitor visitor = m_expressionHelper.createExpressionVisitor(withinExpr);
60
61       return visitor.match(exprCntx);
62     } catch (Exception JavaDoc e) {
63       return false;
64     }
65   }
66
67   public boolean matchesClass(final String JavaDoc expression, final String JavaDoc className) {
68     return matchesClass(expression, m_classInfoFactory.getClassInfo(className));
69   }
70
71   public boolean matchesClass(final String JavaDoc expr, final ClassInfo classInfo) {
72     return matchesClass(expr, m_expressionHelper.createWithinExpressionContext(classInfo));
73   }
74
75   public MethodInfo getMethodInfo(int modifiers, String JavaDoc className, String JavaDoc methodName, String JavaDoc description,
76                                   String JavaDoc[] exceptions) {
77     return new AsmMethodInfo(m_classInfoFactory, modifiers, className, methodName, description, exceptions);
78   }
79 }
80
Popular Tags