public static Method create(java.lang.Class<?> type, String name, java.lang.Class<?>... parameterTypes) { String[] tmp = new String[parameterTypes.length]; for (int i = 0;i < parameterTypes.length;i++) { tmp[i] = parameterTypes[i].getName(); } return create(type.getName(), name, tmp); }
public static Method create(java.lang.Class<?> type, String name, java.lang.Class<?>... parameterTypes) { String[] tmp = new String[parameterTypes.length]; for (int i = 0;i < parameterTypes.length;i++) { tmp[i] = parameterTypes[i].getName(); } return create(type.getName(), name, tmp); }
public static ElementHandle<?> create(Element elt) { ElementKind kind = elt.getKind(); switch (kind) { case FIELD: { VariableElement variableElt = (VariableElement)elt; return Field.create(variableElt); } case CLASS: { TypeElement typeElt = (TypeElement)elt; return Type.create(typeElt); } case PACKAGE: { PackageElement packageElt = (PackageElement)elt; return Package.create(packageElt); } case METHOD: { ExecutableElement packageElt = (ExecutableElement)elt; return Method.create(packageElt); } default: throw new UnsupportedOperationException("Element " + elt + " with kind " + kind + " not supported"); } }
AnnotationState m1 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m1"), StringArray.class); assertTrue(m1.isUndeclared("value")); List<?> value = assertInstanceOf(List.class, m1.resolve("value")); AnnotationState m2 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m2"), StringArray.class); assertTrue(m2.isDeclared("value")); value = assertInstanceOf(List.class, m2.resolve("value")); AnnotationState m3 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m3"), StringArray.class); assertTrue(m3.isDeclared("value")); value = assertInstanceOf(List.class, m3.resolve("value")); AnnotationState m4 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m4"), StringArray.class); assertTrue(m4.isDeclared("value")); value = assertInstanceOf(List.class, m4.resolve("value")); AnnotationState m5 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m5"), StringArray.class); assertTrue(m5.isDeclared("value")); value = assertInstanceOf(List.class, m5.resolve("value"));
assertEquals(5, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertEquals(ElementHandle.Method.create(Name.parse("metamodel.controller.A"), "index", Collections.<String>emptyList()), ((HandlerMetaModel)events.get(0).getObject()).getMethod()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(1).getType()); assertEquals(ElementHandle.Type.create(Name.parse("metamodel.controller.A")), ((ControllerMetaModel)events.get(1).getObject()).getHandle()); assertEquals(ElementHandle.Type.create(Name.parse("metamodel.controller.sub.A")), ((ControllerMetaModel)events.get(2).getObject()).getHandle()); assertEquals(MetaModelEvent.AFTER_ADD, events.get(3).getType()); assertEquals(ElementHandle.Method.create(Name.parse("metamodel.controller.sub.A"), "index", Collections.<String>emptyList()), ((HandlerMetaModel)events.get(3).getObject()).getMethod()); assertEquals(MetaModelEvent.UPDATED, events.get(4).getType()); assertEquals(ElementHandle.Type.create(Name.parse("metamodel.controller.sub.A")), ((ControllerMetaModel)events.get(4).getObject()).getHandle());
AnnotationState m1 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m1"), StringArray.class); assertTrue(m1.isUndeclared("value")); List<?> value = assertInstanceOf(List.class, m1.resolve("value")); AnnotationState m2 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m2"), StringArray.class); assertTrue(m2.isDeclared("value")); value = assertInstanceOf(List.class, m2.resolve("value")); AnnotationState m3 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m3"), StringArray.class); assertTrue(m3.isDeclared("value")); value = assertInstanceOf(List.class, m3.resolve("value")); AnnotationState m4 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m4"), StringArray.class); assertTrue(m4.isDeclared("value")); value = assertInstanceOf(List.class, m4.resolve("value")); AnnotationState m5 = processor.get(ElementHandle.Method.create("compiler.annotationstate.multivalued.A", "m5"), StringArray.class); assertTrue(m5.isDeclared("value")); value = assertInstanceOf(List.class, m5.resolve("value"));
assertEquals(5, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertEquals(ElementHandle.Method.create(Name.parse("metamodel.controller.A"), "index", Collections.<String>emptyList()), ((HandlerMetaModel)events.get(0).getObject()).getMethod()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(1).getType()); assertEquals(ElementHandle.Type.create(Name.parse("metamodel.controller.A")), ((ControllerMetaModel)events.get(1).getObject()).getHandle()); assertEquals(ElementHandle.Type.create(Name.parse("metamodel.controller.sub.A")), ((ControllerMetaModel)events.get(2).getObject()).getHandle()); assertEquals(MetaModelEvent.AFTER_ADD, events.get(3).getType()); assertEquals(ElementHandle.Method.create(Name.parse("metamodel.controller.sub.A"), "index", Collections.<String>emptyList()), ((HandlerMetaModel)events.get(3).getObject()).getMethod()); assertEquals(MetaModelEvent.UPDATED, events.get(4).getType()); assertEquals(ElementHandle.Type.create(Name.parse("metamodel.controller.sub.A")), ((ControllerMetaModel)events.get(4).getObject()).getHandle());
public static ElementHandle<?> create(Element elt) { ElementKind kind = elt.getKind(); switch (kind) { case FIELD: { VariableElement variableElt = (VariableElement)elt; return Field.create(variableElt); } case CLASS: { TypeElement typeElt = (TypeElement)elt; return Type.create(typeElt); } case PACKAGE: { PackageElement packageElt = (PackageElement)elt; return Package.create(packageElt); } case METHOD: { ExecutableElement packageElt = (ExecutableElement)elt; return Method.create(packageElt); } default: throw new UnsupportedOperationException("Element " + elt + " with kind " + kind + " not supported"); } }