View Javadoc

    1   package org.codehaus.aspectwerkz.expression.ast;
    2
    3   import org.codehaus.aspectwerkz.expression.SubtypePatternType;
    4   import org.codehaus.aspectwerkz.expression.regexp.Pattern;
    5   import org.codehaus.aspectwerkz.expression.regexp.TypePattern;
    6
    7   public class ASTParameter extends SimpleNode {
    8
    9       private TypePattern m_declaringClassPattern;
    10
    11      public ASTParameter(int id) {
    12          super(id);
    13      }
    14
    15      public ASTParameter(ExpressionParser p, int id) {
    16          super(p, id);
    17      }
    18
    19      public Object jjtAccept(ExpressionParserVisitor visitor, Object data) {
    20          return visitor.visit(this, data);
    21      }
    22
    23      public void setTypePattern(String pattern) {
    24          if (pattern.endsWith("+")) {
    25              pattern = pattern.substring(0, pattern.length() - 1);
    26              m_declaringClassPattern = Pattern.compileTypePattern(pattern, SubtypePatternType.MATCH_ON_ALL_METHODS);
    27          } else if (pattern.endsWith("#")) {
    28              pattern = pattern.substring(0, pattern.length() - 1);
    29              m_declaringClassPattern = Pattern.compileTypePattern(
    30                      pattern,
    31                      SubtypePatternType.MATCH_ON_BASE_TYPE_METHODS_ONLY
    32              );
    33          } else {
    34              m_declaringClassPattern = Pattern.compileTypePattern(pattern, SubtypePatternType.NOT_HIERARCHICAL);
    35          }
    36      }
    37
    38      public TypePattern getDeclaringClassPattern() {
    39          return m_declaringClassPattern;
    40      }
    41  }