Package org.codehaus.aspectwerkz.expression.ast

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


    public Object visit(ASTSet node, Object data) {
        ExpressionContext context = (ExpressionContext) data;
       
        // only the last node might be the pattern, others are annotations
        Node patternNode = node.jjtGetChild(node.jjtGetNumChildren() - 1);
        boolean checkPattern = !(patternNode instanceof ASTAttribute);
       
        // for set evaluation, the reflection info may be null at the early matching phase
        // when we will allow for field interception within non declaring class
        if(checkPattern) {
            if (context.hasWithinPointcut() || context.hasSetPointcut()) {
                if (context.hasReflectionInfo()) {
                        return patternNode.jjtAccept(this, context.getReflectionInfo());
                } else {
                    return null;
                }
            } else {
                return Boolean.FALSE;
View Full Code Here


    public Object visit(ASTGet node, Object data) {
        ExpressionContext context = (ExpressionContext) data;

        // only the last node might be the pattern, others are annotations
        Node patternNode = node.jjtGetChild(node.jjtGetNumChildren() - 1);
        boolean checkPattern = !(patternNode instanceof ASTAttribute);
       
        // for get evaluation, the reflection info may be null at the early matching phase
        // since we allow for field interception within non declaring class
        if(checkPattern) {
            if (context.hasWithinPointcut() || context.hasGetPointcut()) {
                if (context.hasReflectionInfo()) {
                  return patternNode.jjtAccept(this, context.getReflectionInfo());
                } else {
                    return null;
                }
            } else {
                return Boolean.FALSE;
View Full Code Here

            if (reflectInfo instanceof StaticInitializationInfo) {
                reflectInfo = ((StaticInitializationInfo) reflectInfo).getDeclaringType();
            }
          if (reflectInfo instanceof ClassInfo) {
                // In an annotated subtree, the last child node represents the pattern
                Node patternNode = node.jjtGetChild(node.jjtGetNumChildren() - 1);
                if (!(patternNode instanceof ASTAttribute)) {
                    Boolean matchPattern = (Boolean) patternNode.jjtAccept(this, reflectInfo);
                    if (Boolean.FALSE.equals(matchPattern)) {
                        return Boolean.FALSE;
                    }
                }
View Full Code Here

            for (int i = 0; i < node.jjtGetChild(0).jjtGetNumChildren(); i++) {
                  fastNode.jjtAddChild(node.jjtGetChild(0).jjtGetChild(i), i);
            }
            return super.visit(fastNode, data);
        } else {
          Node patternNode = node.jjtGetChild(node.jjtGetNumChildren() - 1);
          boolean checkPattern = !(patternNode instanceof ASTAttribute);
 
          if (checkPattern) {
              if (withinInfo instanceof MemberInfo) {
                  return patternNode.jjtAccept(this, withinInfo);
              } else if (withinInfo instanceof ClassInfo) {
                  Boolean matchDeclaringType = (Boolean) patternNode.jjtAccept(this, withinInfo);
                  if (Boolean.FALSE.equals(matchDeclaringType)) {
                      return Boolean.FALSE;
                  } else {
                      // may be we match now but not later?
                      return null;
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

        // 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);
        FieldInfo[] fieldInfos = classInfo.getFields();
        for (int i = 0; i < fieldInfos.length; i++) {
            if (Boolean.TRUE.equals(childNode.jjtAccept(this, fieldInfos[i]))) {
                return Boolean.TRUE;
            }
        }

        return Boolean.FALSE;
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

    protected boolean visitModifiers(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 ASTModifier) {
                    if (Boolean.TRUE.equals(child.jjtAccept(this, refInfo))) {
                        continue;
                    } else {
                        return false;
                    }
                }
View Full Code Here

        }

        // collect the parameter nodes
        List parameterNodes = new ArrayList();
        for (int i = 0; i < nrChildren; i++) {
            Node child = node.jjtGetChild(i);
            if (child instanceof ASTParameter) {
                parameterNodes.add(child);
            }
        }
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);
        Boolean match = (Boolean) child.jjtAccept(this, data);
        return match;
    }
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.