Package org.codehaus.aspectwerkz.metadata

Examples of org.codehaus.aspectwerkz.metadata.FieldMetaData


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

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            ClassMetaData classMetaData2 = ReflectionMetaDataMaker.createClassMetaData(ExpressionException.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );

            assertTrue(root.match(classMetaData1, PointcutType.SET));
            assertTrue(rootAnonymous.match(classMetaData1, PointcutType.SET));
View Full Code Here


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

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            ClassMetaData classMetaData2 = ReflectionMetaDataMaker.createClassMetaData(ExpressionException.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );

            assertTrue(root.match(classMetaData1, PointcutType.GET));
            assertTrue(rootAnonymous.match(classMetaData1, PointcutType.GET));
View Full Code Here

            space.registerExpression("* test.ExpressionTest.m_type", "", "pc2", PointcutType.SET);
            Expression root = space.createExpression("!pc1 && pc2");

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            ClassMetaData classMetaData2 = ReflectionMetaDataMaker.createClassMetaData(ExpressionException.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );

            assertTrue(root.match(classMetaData1, PointcutType.SET));
            assertFalse(root.match(classMetaData2, PointcutType.SET));
View Full Code Here

            space.registerExpression("* test.ExpressionTest.m_type", "", "pc2", PointcutType.GET);
            Expression root = space.createExpression("!pc1 && pc2");

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            ClassMetaData classMetaData2 = ReflectionMetaDataMaker.createClassMetaData(ExpressionException.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );

            assertTrue(root.match(classMetaData1, PointcutType.GET));
            assertFalse(root.match(classMetaData2, PointcutType.GET));
View Full Code Here

            space.registerExpression(space.createExpression("pc1 || pc2", "pc3"));
            space.registerExpression("* test.ExpressionTest.m_dummy", "", "pc4", PointcutType.SET);
            Expression root = space.createExpression("pc3 && !pc4");

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );
            FieldMetaData fieldMetaData3 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_dummy")
            );

            assertTrue(root.match(classMetaData1));
            assertTrue(root.match(classMetaData1, fieldMetaData1));
View Full Code Here

            space.registerExpression(space.createExpression("pc1 || pc2", "pc3"));
            space.registerExpression("* test.ExpressionTest.m_dummy", "", "pc4", PointcutType.GET);
            Expression root = space.createExpression("pc3 && !pc4");

            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );
            FieldMetaData fieldMetaData3 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_dummy")
            );

            assertTrue(root.match(classMetaData1));
            assertTrue(root.match(classMetaData1, fieldMetaData1));
View Full Code Here

    public void testMatchHierachicalExpression_SET() {
        try {
            Expression root = space.createExpression("* *..TestCase+.m_dummy", PointcutType.SET);
            ClassMetaData classMetaData1 = ReflectionMetaDataMaker.createClassMetaData(ExpressionTest.class);
            FieldMetaData fieldMetaData1 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_name")
            );
            FieldMetaData fieldMetaData2 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_type")
            );
            FieldMetaData fieldMetaData3 = ReflectionMetaDataMaker.createFieldMetaData(
                    ExpressionTest.class.getDeclaredField("m_dummy")
            );
            assertTrue(root.match(classMetaData1));
            assertFalse(root.match(classMetaData1, fieldMetaData1));
            assertFalse(root.match(classMetaData1, fieldMetaData2));
View Full Code Here

                                // get field accessed information
                                final String fieldName = fieldAccess.getFieldName();
                                final String fieldSignature = fieldAccess.getField().getType().getName().replace('/', '.') + ' ' +
                                                              fieldName;
                                FieldMetaData fieldMetaData = JavassistMetaDataMaker.createFieldMetaData(
                                        fieldAccess.getField()
                                );

                                // handle GET
                                if (fieldAccess.isReader() &&
View Full Code Here

                                // get field accessed information
                                final String fieldName = fieldAccess.getFieldName();
                                final String fieldSignature = fieldAccess.getField().getType().getName() + ' ' +
                                                              fieldName;
                                FieldMetaData fieldMetaData = JavassistMetaDataMaker.createFieldMetaData(
                                        fieldAccess.getField()
                                );

                                // handle GET
                                if (fieldAccess.isReader() &&
View Full Code Here

                                        final String fieldName = currentGetFieldIns.getName(cpg);
                                        final String signature = currentGetFieldIns.getFieldType(cpg).
                                                toString() + " " + fieldName;
                                        final Type joinPointType = TransformationUtil.MEMBER_FIELD_SET_JOIN_POINT_TYPE;

                                        FieldMetaData fieldMetaData =
                                                BcelMetaDataMaker.createFieldMetaData(currentGetFieldIns, cpg);

                                        String uuid = setFieldFilter(definition, classMetaData, fieldMetaData);

                                        // do we have to set a joinpoint ?
                                        if (uuid != null) {
                                            final String fieldClassName = currentGetFieldIns.getClassName(cpg);

                                            if (fieldClassName.equals(cg.getClassName())) {
                                                isMethodAdvised = true;

                                                insertPreAdvice(
                                                        il, ih, cg, fieldName,
                                                        factory, joinPointType);

                                                insertPostAdvice(
                                                        il, ih.getNext().getNext(), cg,
                                                        fieldName, factory, joinPointType);

                                                // store the join point field data
                                                JoinPointFieldData data = new JoinPointFieldData(
                                                        fieldName, signature, joinPointType, uuid);
                                                if (!setFieldJoinPoints.contains(data)) {
                                                    setFieldJoinPoints.add(data);
                                                }

                                                // add one step more to the InstructionList (GETFIELD(current) INVOKEINTERFACE with jp)
                                                ih = ih.getNext();
                                                ins = ih.getInstruction();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    // handle the getField instructions
                    // (if we have set a getfield for collection modification jp the ins has been altered)
                    if (ins instanceof GETFIELD) {
                        final FieldInstruction gfIns = (FieldInstruction)ins;

                        String fieldName = gfIns.getName(cpg);
                        String signature = gfIns.getFieldType(cpg).toString() + " " + fieldName;
                        Type joinPointType = TransformationUtil.MEMBER_FIELD_GET_JOIN_POINT_TYPE;

                        FieldMetaData fieldMetaData = BcelMetaDataMaker.createFieldMetaData(gfIns, cpg);

                        String uuid = getFieldFilter(definition, classMetaData, fieldMetaData);
                        if (uuid != null) {

                            final String fieldClassName = gfIns.getClassName(cpg);
                            if (fieldClassName.equals(cg.getClassName())) {

                                isMethodAdvised = true;

                                insertPreAdvice(
                                        il, ih, cg, fieldName,
                                        factory, joinPointType);

                                insertPostAdvice(
                                        il, ih.getNext(), cg,
                                        fieldName, factory, joinPointType);

                                // store the join point field data
                                JoinPointFieldData data = new JoinPointFieldData(
                                        fieldName, signature, joinPointType, uuid);

                                if (!getFieldJoinPoints.contains(data)) {
                                    getFieldJoinPoints.add(data);
                                }
                            }
                        }
                    }
                    // handle the setField instructions
                    else if (ins instanceof PUTFIELD) {
                        final FieldInstruction pfIns = (FieldInstruction)ins;

                        String fieldName = pfIns.getName(cpg);
                        String signature = pfIns.getFieldType(cpg).toString() + " " + fieldName;
                        Type joinPointType = TransformationUtil.MEMBER_FIELD_SET_JOIN_POINT_TYPE;

                        FieldMetaData fieldMetaData =
                                BcelMetaDataMaker.createFieldMetaData(pfIns, cpg);

                        String uuid = setFieldFilter(definition, classMetaData, fieldMetaData);
                        if (uuid != null) {
View Full Code Here

TOP

Related Classes of org.codehaus.aspectwerkz.metadata.FieldMetaData

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.