package org.codehaus.aspectwerkz.expression.ast;
import org.codehaus.aspectwerkz.expression.SubtypePatternType;
import org.codehaus.aspectwerkz.expression.regexp.Pattern;
import org.codehaus.aspectwerkz.expression.regexp.TypePattern;
public class ASTParameter extends SimpleNode {
private TypePattern m_declaringClassPattern;
public ASTParameter(int id) {
super(id);
}
public ASTParameter(ExpressionParser p, int id) {
super(p, id);
}
public Object jjtAccept(ExpressionParserVisitor visitor, Object data) {
return visitor.visit(this, data);
}
public void setTypePattern(String pattern) {
if (pattern.endsWith("+")) {
pattern = pattern.substring(0, pattern.length() - 1);
m_declaringClassPattern = Pattern.compileTypePattern(pattern, SubtypePatternType.MATCH_ON_ALL_METHODS);
} else if (pattern.endsWith("#")) {
pattern = pattern.substring(0, pattern.length() - 1);
m_declaringClassPattern = Pattern.compileTypePattern(
pattern,
SubtypePatternType.MATCH_ON_BASE_TYPE_METHODS_ONLY
);
} else {
m_declaringClassPattern = Pattern.compileTypePattern(pattern, SubtypePatternType.NOT_HIERARCHICAL);
}
}
public TypePattern getDeclaringClassPattern() {
return m_declaringClassPattern;
}
}