| java.lang.Object com.tc.aspectwerkz.expression.ExpressionVisitor com.tc.aspectwerkz.transform.inlining.compiler.RuntimeCheckVisitor
RuntimeCheckVisitor | public class RuntimeCheckVisitor extends ExpressionVisitor implements Opcodes(Code) | | Visit an expression and push on the bytecode stack the boolean expression that corresponds to the residual
part for the target(CALLEE) filtering and cflow / cflowbelow runtime checks
TODO: for now OR / AND / NOT are turned in IAND etc, ie "&" and not "&&" that is more efficient but is using labels.
Note: we have to override here (and maintain) every visit Method that visit a node that appears in an expression
(f.e. set , getDefault, etc, but not ASTParameter), since we cannot rely on AND/OR/NOT nodes to push the boolean expressions.
author: Alexandre Vasseur |
Method Summary | |
public void | pushCheckOnStack(AdviceInfo adviceInfo) Push the boolean typed expression on the stack. | public Object | visit(ASTOr node, Object data) | public Object | visit(ASTAnd node, Object data) | public Object | visit(ASTNot node, Object data) | public Object | visit(ASTTarget node, Object data) | public Object | visit(ASTThis node, Object data) | public Object | visit(ASTCflow node, Object data) | public Object | visit(ASTCflowBelow node, Object data) | public Object | visit(ASTArgs node, Object data) | public Object | visit(ASTPointcutReference node, Object data) | public Object | visit(ASTExecution node, Object data) | public Object | visit(ASTCall node, Object data) | public Object | visit(ASTSet node, Object data) | public Object | visit(ASTGet node, Object data) | public Object | visit(ASTHandler node, Object data) | public Object | visit(ASTStaticInitialization node, Object data) | public Object | visit(ASTWithin node, Object data) | public Object | visit(ASTWithinCode node, Object data) | public Object | visit(ASTHasMethod node, Object data) | public Object | visit(ASTHasField node, Object data) |
NULL_PER_OBJECT_TYPE | final public static int NULL_PER_OBJECT_TYPE(Code) | | |
PER_TARGET_TYPE | final public static int PER_TARGET_TYPE(Code) | | |
PER_THIS_TYPE | final public static int PER_THIS_TYPE(Code) | | |
RuntimeCheckVisitor | public RuntimeCheckVisitor(MethodVisitor cv, ExpressionInfo info, CompilerInput input, int perObjectType, String aspectQName)(Code) | | Create a new visitor given a specific AdviceInfo
Parameters: cv - of the method block we are compiling Parameters: info - expression info Parameters: input - Parameters: perObjectType - Parameters: aspectQName - |
pushCheckOnStack | public void pushCheckOnStack(AdviceInfo adviceInfo)(Code) | | Push the boolean typed expression on the stack.
Parameters: adviceInfo - |
visit | public Object visit(ASTOr node, Object data)(Code) | | Handles OR expression
Parameters: node - Parameters: data - |
Methods inherited from com.tc.aspectwerkz.expression.ExpressionVisitor | public Node getASTRoot()(Code)(Java Doc) public ExpressionInfo getExpressionInfo()(Code)(Java Doc) public boolean match(com.tc.aspectwerkz.expression.ExpressionContext context)(Code)(Java Doc) protected Boolean matchUndeterministic(ExpressionContext context)(Code)(Java Doc) public String toString()(Code)(Java Doc) public Object visit(Node node, Object data)(Code)(Java Doc) public Object visit(SimpleNode node, Object data)(Code)(Java Doc) public Object visit(ASTRoot node, Object data)(Code)(Java Doc) public Object visit(ASTExpression node, Object data)(Code)(Java Doc) public Object visit(ASTOr node, Object data)(Code)(Java Doc) public Object visit(ASTAnd node, Object data)(Code)(Java Doc) public Object visit(ASTNot node, Object data)(Code)(Java Doc) public Object visit(ASTPointcutReference node, Object data)(Code)(Java Doc) public Object visit(ASTExecution node, Object data)(Code)(Java Doc) public Object visit(ASTCall node, Object data)(Code)(Java Doc) public Object visit(ASTSet node, Object data)(Code)(Java Doc) public Object visit(ASTGet node, Object data)(Code)(Java Doc) public Object visit(ASTHandler node, Object data)(Code)(Java Doc) public Object visit(ASTStaticInitialization node, Object data)(Code)(Java Doc) public Object visit(ASTIf node, Object data)(Code)(Java Doc) public Object visit(ASTWithin node, Object data)(Code)(Java Doc) public Object visit(ASTWithinCode node, Object data)(Code)(Java Doc) public Object visit(ASTHasMethod node, Object data)(Code)(Java Doc) public Object visit(ASTHasField node, Object data)(Code)(Java Doc) public Object visit(ASTTarget node, Object data)(Code)(Java Doc) public Object visit(ASTThis node, Object data)(Code)(Java Doc) public Object visit(ASTCflow node, Object data)(Code)(Java Doc) public Object visit(ASTCflowBelow node, Object data)(Code)(Java Doc) public Object visit(ASTClassPattern node, Object data)(Code)(Java Doc) public Object visit(ASTMethodPattern node, Object data)(Code)(Java Doc) public Object visit(ASTConstructorPattern node, Object data)(Code)(Java Doc) public Object visit(ASTFieldPattern node, Object data)(Code)(Java Doc) public Object visit(ASTParameter node, Object data)(Code)(Java Doc) public Object visit(ASTArgs node, Object data)(Code)(Java Doc) public Object visit(ASTArgParameter node, Object data)(Code)(Java Doc) public Object visit(ASTAttribute node, Object data)(Code)(Java Doc) public Object visit(ASTModifier node, Object data)(Code)(Java Doc) protected Object visitAnnotatedNode(SimpleNode node, ReflectionInfo reflectInfo)(Code)(Java Doc) protected boolean visitAttributes(SimpleNode node, ReflectionInfo refInfo)(Code)(Java Doc) protected boolean visitModifiers(SimpleNode node, ReflectionInfo refInfo)(Code)(Java Doc) protected boolean visitParameters(SimpleNode node, ClassInfo[] parameterTypes)(Code)(Java Doc)
|
|
|