Package org.codehaus.aspectwerkz.definition.expression

Examples of org.codehaus.aspectwerkz.definition.expression.Expression


            space.registerExpression(
                    space.createExpression("* test.ExpressionTest.set(..)", "", "pc1", PointcutType.EXECUTION)
            );
            space.registerExpression(
                    space.createExpression("call(* test.ExpressionTest.get(..))", "", "pc2"));//implicit type
            Expression root = ExpressionNamespace.getExpressionNamespace().createExpression("pc1 && NOT pc2");
            fail("expected exception");
        }
        catch (Exception e) {
        }
    }
View Full Code Here


                    space.createExpression("* test.ExpressionTest.get(..)", "", "cf1", PointcutType.CFLOW)
            );
            space.registerExpression(
                    space.createExpression("* test.ExpressionTest.get2(..)", "", "cf2", PointcutType.CFLOW)
            );
            Expression root1 = ExpressionNamespace.getExpressionNamespace().createExpression("pc1 AND (cf1 OR cf2)");
            Expression root2 = ExpressionNamespace.getExpressionNamespace().createExpression("pc1 AND cf1");
        }
        catch (Exception e) {
            e.printStackTrace();
            fail(e.toString());
        }
View Full Code Here

    }

    public void testMatchSingleAnonymousExpression() {
        try {
            ExpressionNamespace space = ExpressionNamespace.getExpressionNamespace();
            Expression root = space.createExpression("* test.ExpressionTest.set(..)", PointcutType.EXECUTION);

            Expression rootAnonymous = space.createExpression("execution(* test.ExpressionTest.set(..))");//type autodetection
            Expression rootAnonymous2 = space.createExpression("execution(* test.hierarchicalpattern.DummyInterface1+.testMethod1(..))");//type autodetection

            ClassMetaData classMetaDataTrue = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            ClassMetaData classMetaDataFalse = ReflectionMetaDataMaker.createClassMetaData(ExpressionException.class);
            MethodMetaData methodMetaDataTrue = ReflectionMetaDataMaker.createMethodMetaData(
                    ExpressionTest.class.getDeclaredMethod("set", new Class[]{})
View Full Code Here

        try {
            ExpressionNamespace space = ExpressionNamespace.getExpressionNamespace();
            space.registerExpression("* test.ExpressionTest.set(..)", "", "pc1", PointcutType.EXECUTION);
            space.registerExpression("* test.ExpressionTest.get(..)", "", "pc2", PointcutType.EXECUTION);

            Expression root = space.createExpression("pc1 || pc2");
            Expression rootAnonymous = space.createExpression("pc1 || execution(* test.ExpressionTest.get(..))");
            Expression rootAnonymousAnonymous = space.createExpression(
                    "execution(* test.ExpressionTest.set(..)) || execution(* test.ExpressionTest.get(..))");

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            ClassMetaData classMetaData2 = ReflectionMetaDataMaker.createClassMetaData(ExpressionException.class);
            MethodMetaData methodMetaData1 = ReflectionMetaDataMaker.createMethodMetaData(
                    ExpressionTest.class.getDeclaredMethod("set", new Class[]{})
            );
            MethodMetaData methodMetaData2 = ReflectionMetaDataMaker.createMethodMetaData(
                    ExpressionTest.class.getDeclaredMethod("get", new Class[]{})
            );
            MethodMetaData methodMetaData3 = ReflectionMetaDataMaker.createMethodMetaData(
                    ExpressionTest.class.getDeclaredMethod("suite", new Class[]{})
            );

            assertTrue(root.match(classMetaData1, PointcutType.EXECUTION));
            assertTrue(rootAnonymous.match(classMetaData1, PointcutType.EXECUTION));
            assertTrue(rootAnonymousAnonymous.match(classMetaData1, PointcutType.EXECUTION));

            assertFalse(root.match(classMetaData2, PointcutType.EXECUTION));
            assertFalse(rootAnonymous.match(classMetaData2, PointcutType.EXECUTION));
            assertFalse(rootAnonymousAnonymous.match(classMetaData2, PointcutType.EXECUTION));

            assertTrue(root.match(classMetaData1, methodMetaData1, PointcutType.EXECUTION));
            assertTrue(rootAnonymous.match(classMetaData1, methodMetaData1, PointcutType.EXECUTION));
            assertTrue(rootAnonymousAnonymous.match(classMetaData1, methodMetaData1, PointcutType.EXECUTION));

            assertTrue(root.match(classMetaData1, methodMetaData2, PointcutType.EXECUTION));
            assertTrue(rootAnonymous.match(classMetaData1, methodMetaData2, PointcutType.EXECUTION));
            assertTrue(rootAnonymousAnonymous.match(classMetaData1, methodMetaData2, PointcutType.EXECUTION));
//            long loop = 100000;
//            long t1 = System.currentTimeMillis();
//            for (int i = 0; i < loop; i++) {
//                assertTrue(root.match(classMetaData1, methodMetaData2, PointcutType.EXECUTION));
//            } System.out.println("\tNamed expression: " + (System.currentTimeMillis()-t1));
//            t1 = System.currentTimeMillis();
//            for (int i = 0; i < loop; i++) {
//                assertTrue(rootAnonymous.match(classMetaData1, methodMetaData2, PointcutType.EXECUTION));
//            } System.out.println("\tHalfNamed HalfAnonymous expression: " + (System.currentTimeMillis()-t1));
//            t1 = System.currentTimeMillis();
//            for (int i = 0; i < loop; i++) {
//                assertTrue(rootAnonymousAnonymous.match(classMetaData1, methodMetaData2, PointcutType.EXECUTION));
//            } System.out.println("\tAnonymous expression: " + (System.currentTimeMillis()-t1));

            assertFalse(root.match(classMetaData1, methodMetaData3, PointcutType.EXECUTION));
            assertFalse(rootAnonymous.match(classMetaData1, methodMetaData3, PointcutType.EXECUTION));
            assertFalse(rootAnonymousAnonymous.match(classMetaData1, methodMetaData3, PointcutType.EXECUTION));
        }
        catch (Exception e) {
            fail(e.toString());
        }
    }
View Full Code Here

        return getLeftHS(node, data);
    }

    public Object visit(Identifier node, Object data) {
        ExpressionNamespace space = (ExpressionNamespace)data;
        Expression expression = space.getExpression(node.name);
        if (expression != null) {
            //((TypeVisitorContext)data).addTypes(expression.getType());
            //return expression.getType();
            //TODO AVO allow nested lookup of type ??
            Set set = new HashSet();
            set.addAll(expression.getTypes());
            return set;
        }
        else {
            throw new DefinitionException("No such registered expression: " + node.name + " in " + space.getNamespaceKey());
        }
View Full Code Here

    }

    public Object visit(Identifier node, Object data) {
        ExpressionContext ctx = (ExpressionContext)data;
        String leafName = node.name;
        Expression expression = ctx.getNamespace().getExpression(leafName);
        if (expression != null) {
            if (PointcutType.isCflowTypeOnly(expression.getTypes())) {
                return null;//Boolean.TRUE;//match at TF time
            } else {
                //TODO WITHIN
                return new Boolean(expression.match(ctx.getClassMetaData(),
                        ctx.getMemberMetaData(), ctx.getExceptionType(), ctx.getPointcutType())
                );
            }
        }
        else {
View Full Code Here

        String expr = node.name;

        if (expr.startsWith("cflow(")) {
            return null;//Boolean.TRUE;
        } else {
            Expression expression = null;
            ExpressionNamespace ns = ctx.getNamespace();
            if (expr.startsWith("execution(")) {
                expression = ns.createExecutionExpression(
                        expr.substring(10, expr.length()-1),
                        "",""
                );
            } else if (expr.startsWith("call(")) {
                expression = ns.createCallExpression(
                        expr.substring(5, expr.length()-1),
                        "",""
                );
            } else if (expr.startsWith("set(")) {
                expression = ns.createSetExpression(
                        expr.substring(4, expr.length()-1),
                        "",""
                );
            } else if (expr.startsWith("get(")) {
                expression = ns.createGetExpression(
                        expr.substring(4, expr.length()-1),
                        "",""
                );
            } else if (expr.startsWith("class(")) {
                expression = ns.createClassExpression(
                        expr.substring(6, expr.length()-1),
                        "",""
                );
            } else if (expr.startsWith("handler(")) {
                expression = ns.createHandlerExpression(
                        expr.substring(8, expr.length()-1),
                        "",""
                );
            } else if (expr.startsWith("attribute(")) {
                expression = ns.createAttributeExpression(
                        expr.substring(10, expr.length()-1),
                        ""
                );
            } else {
                throw new RuntimeException("unknown anonymous: "+expr);
            }
            if (expression.match(
                    ctx.getClassMetaData(), ctx.getMemberMetaData(), ctx.getExceptionType(), ctx.getPointcutType())) {
                return Boolean.TRUE;
            } else {
                return Boolean.FALSE;
            }
View Full Code Here

     * @param pointcut
     * @param pointcutName
     */
    public static void addPointcutForLoggingAdvice(String pointcut, String pointcutName) {
        final String aspectName = "examples.logging.JavaLoggingAspect";
        Expression pcExpression = ExpressionNamespace.getExpressionNamespace(aspectName)
                .createExpression(
                        pointcut,
                        "",
                        pointcutName
                );
View Full Code Here

        }

        for (Iterator it = m_introductionMap.values().iterator(); it.hasNext();) {
            IntroductionDefinition introDef = (IntroductionDefinition)it.next();
            for (int i = 0; i < introDef.getExpressions().length; i++) {
                Expression expression = introDef.getExpressions()[i];
                if (expression.isOfType(PointcutType.CLASS)
                    && expression.match(classMetaData, PointcutType.CLASS)) {
                    return true;
                }
            }
        }
        return false;
View Full Code Here

        for (Iterator it = m_aspectMap.values().iterator(); it.hasNext();) {
            AspectDefinition aspectDef = (AspectDefinition)it.next();
            for (Iterator it2 = aspectDef.getAllAdvices().iterator(); it2.hasNext();) {
                AdviceDefinition adviceDef = (AdviceDefinition)it2.next();
                Expression expression = adviceDef.getExpression();
                if (expression.isOfType(PointcutType.EXECUTION)
                    && expression.match(classMetaData, PointcutType.EXECUTION)) {
                    return true;
                }
            }
        }
        return false;
View Full Code Here

TOP

Related Classes of org.codehaus.aspectwerkz.definition.expression.Expression

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.