Package org.codehaus.aspectwerkz.expression.ast

Examples of org.codehaus.aspectwerkz.expression.ast.Node


        int notPcIndex = -1;

        // handle 'call', with and without 'within*'
        int nrOfChildren = node.jjtGetNumChildren();
        for (int i = 0; i < nrOfChildren; i++) {
            Node child = node.jjtGetChild(i);
            if (child instanceof ASTNot) {
                hasNotPc = true;
                notPcIndex = i;
            } else if (child instanceof ASTCall || child instanceof ASTHandler) {
                hasCallOrHandlerPc = true;
            } else if (child instanceof ASTWithin || child instanceof ASTWithinCode) {
                hasWithinPc = true;
            }
        }

        // check the child of the 'not' node
        if (hasCallOrHandlerPc && hasNotPc) {
            Node childChild = node.jjtGetChild(notPcIndex).jjtGetChild(0);
            if (childChild instanceof ASTWithin || childChild instanceof ASTWithinCode) {
                if (Boolean.TRUE.equals(childChild.jjtAccept(this, data))) {
                    return Boolean.FALSE;
                } else {
                    return Boolean.TRUE;
                }
            }
View Full Code Here


    public Object visit(ASTCflow node, Object data) {
        ExpressionContext context = (ExpressionContext)data;
        context.setHasBeenVisitingCflow(true);
        context.setInCflowSubAST(true);
        Node child = node.jjtGetChild(0);
        Object result;

        // if 'call' or 'handler' but no 'within*' then return true
        if (child instanceof ASTCall || child instanceof ASTHandler) {
            result = Boolean.TRUE;
        } else {
            result = child.jjtAccept(this, context);
        }
        context.setInCflowSubAST(false);
        return result;
    }
View Full Code Here

    public Object visit(ASTCflowBelow node, Object data) {
        ExpressionContext context = (ExpressionContext)data;
        context.setHasBeenVisitingCflow(true);
        context.setInCflowSubAST(true);
        Node child = node.jjtGetChild(0);
        Object result;

        // if 'call' or 'handler' but no 'within*' then return true
        if (child instanceof ASTCall || child instanceof ASTHandler) {
            result = Boolean.TRUE;
        } else {
            result = child.jjtAccept(this, context);
        }
        context.setInCflowSubAST(false);
        return result;
    }
View Full Code Here

    public Object visit(SimpleNode node, Object data) {
        return node.jjtGetChild(0).jjtAccept(this, data);
    }

    public Object visit(ASTRoot node, Object data) {
        Node child = node.jjtGetChild(0);

//        // if 'call' or 'handler' but no 'within*' then return true
//        if (child instanceof ASTCall || child instanceof ASTHandler) {
//            return Boolean.TRUE;
//        }
        Boolean match = (Boolean) child.jjtAccept(this, data);
        return match;
    }
View Full Code Here

        Boolean match = (Boolean) child.jjtAccept(this, data);
        return match;
    }

    public Object visit(ASTExpression node, Object data) {
        Node child = node.jjtGetChild(0);

//        // if 'call' or 'handler' but no 'within*' then return true
//        if (child instanceof ASTCall || child instanceof ASTHandler) {
//            return Boolean.TRUE;
//        }
        Boolean match = (Boolean) child.jjtAccept(this, data);
        return match;
    }
View Full Code Here

    protected boolean visitAttributes(SimpleNode node, ReflectionInfo refInfo) {
        int nrChildren = node.jjtGetNumChildren();
        if (nrChildren != 0) {
            for (int i = 0; i < nrChildren; i++) {
                Node child = node.jjtGetChild(i);
                if (child instanceof ASTAttribute) {
                    List annotations = refInfo.getAnnotations();
                    if (Boolean.TRUE.equals(child.jjtAccept(this, annotations))) {
                        continue;
                    } else {
                        return false;
                    }
                }
View Full Code Here

    public Object visit(ASTCflow node, Object data) {
        ExpressionContext context = (ExpressionContext) data;
        context.setHasBeenVisitingCflow(true);
        context.setInCflowSubAST(true);
        Node child = node.jjtGetChild(0);
        Object result;

//        // if 'call' or 'handler' but no 'within*' then return true
//        if (child instanceof ASTCall || child instanceof ASTHandler) {
//            result = Boolean.TRUE;
//        } else {
//            result = child.jjtAccept(this, context);
//        }
        result = child.jjtAccept(this, context);
        context.setInCflowSubAST(false);
        return result;
    }
View Full Code Here

    public Object visit(ASTCflowBelow node, Object data) {
        ExpressionContext context = (ExpressionContext) data;
        context.setHasBeenVisitingCflow(true);
        context.setInCflowSubAST(true);
        Node child = node.jjtGetChild(0);
        Object result;

//        // if 'call' or 'handler' but no 'within*' then return true
//        if (child instanceof ASTCall || child instanceof ASTHandler) {
//            result = Boolean.TRUE;
//        } else {
//            result = child.jjtAccept(this, context);
//        }
        result = child.jjtAccept(this, context);
        context.setInCflowSubAST(false);
        return result;
    }
View Full Code Here

        }
        return Boolean.TRUE;
    }

    public Object visit(ASTNot node, Object data) {
        Node child = node.jjtGetChild(0);
        Boolean match = (Boolean) child.jjtAccept(this, data);
        if (child instanceof ASTCflow || child instanceof ASTCflowBelow) {
            return match;
        } else {
            if (match.equals(Boolean.TRUE)) {
                return Boolean.FALSE;
View Full Code Here

        // for execution() pointcut, this is equals to CALLEE info
        ReflectionInfo info = context.getWithinReflectionInfo();
        ClassInfo classInfo = (info instanceof MemberInfo) ?
            ((MemberInfo)info).getDeclaringType() : (ClassInfo)info;

        Node childNode = node.jjtGetChild(0);
        MethodInfo[] methodInfos = classInfo.getMethods();
        for (int i = 0; i < methodInfos.length; i++) {
            if (Boolean.TRUE.equals(childNode.jjtAccept(this, methodInfos[i]))) {
                return Boolean.TRUE;
            }
        }

        ConstructorInfo[] constructorInfos = classInfo.getConstructors();
        for (int i = 0; i < constructorInfos.length; i++) {
            if (Boolean.TRUE.equals(childNode.jjtAccept(this, constructorInfos[i]))) {
                return Boolean.TRUE;
            }
        }

        return Boolean.FALSE;
View Full Code Here

TOP

Related Classes of org.codehaus.aspectwerkz.expression.ast.Node

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.