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(Name fqn, String name, Collection<String> parameterTypes) { return new Method(fqn, name, new ArrayList<String>(parameterTypes)); }
String methodId = handler.getMethod().getMethodHandle().toString();
String handle = method.getMethod().getMethodHandle().toString(); RouteMetaModel route = new RouteMetaModel(path, handle, priority != null ? priority : 0, parameters); router.routes.add(route);
String handle = method.getMethod().getMethodHandle().toString(); RouteMetaModel route = new RouteMetaModel(path, handle, priority != null ? priority : 0, parameters); router.routes.add(route);
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());
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"));
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"); } }
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"); } }
HandlerMetaModel( ElementHandle.Method method, String declaredId, Phase phase, String name, ArrayList<ParameterMetaModel> parameters) { String id; if (declaredId == null) { id = method.getTypeName().getIdentifier() + "." + method.getName(); } else { id = declaredId; } // this.method = method; this.declaredId = declaredId; this.phase = phase; this.name = name; this.parameters = parameters; this.id = id; }
HandlerMetaModel( ElementHandle.Method method, String declaredId, Phase phase, String name, ArrayList<ParameterMetaModel> parameters) { String id; if (declaredId == null) { id = method.getTypeName().getIdentifier() + "." + method.getName(); } else { id = declaredId; } // this.method = method; this.declaredId = declaredId; this.phase = phase; this.name = name; this.parameters = parameters; this.id = id; }
@Override public void processAnnotationRemoved(ApplicationMetaModel metaModel, AnnotationKey key, AnnotationState removed) { ElementHandle.Method methodHandle = (ElementHandle.Method)key.getElement(); ElementHandle.Type controllerHandle = ElementHandle.Type.create(methodHandle.getTypeName()); ControllersMetaModel controllers = metaModel.getChild(ControllersMetaModel.KEY); ControllerMetaModel controller = controllers.get(controllerHandle); if (controller != null) { controller.removeMethod(methodHandle); if (controller.getHandlers().isEmpty()) { controller.remove(); } } }
@Override public void processAnnotationRemoved(ApplicationMetaModel metaModel, AnnotationKey key, AnnotationState removed) { ElementHandle.Method methodHandle = (ElementHandle.Method)key.getElement(); ElementHandle.Type controllerHandle = ElementHandle.Type.create(methodHandle.getTypeName()); ControllersMetaModel controllers = metaModel.getChild(ControllersMetaModel.KEY); ControllerMetaModel controller = controllers.get(controllerHandle); if (controller != null) { controller.removeMethod(methodHandle); if (controller.getHandlers().isEmpty()) { controller.remove(); } } }
public static Method create(Name fqn, String name, Collection<String> parameterTypes) { return new Method(fqn, name, new ArrayList<String>(parameterTypes)); }
public static Method create(String type, String name, String... parameterTypes) { ArrayList<String> tmp = new ArrayList<String>(parameterTypes.length); Collections.addAll(tmp, parameterTypes); return new Method(Name.parse(type), name, tmp); }
@Override public void processAnnotationAdded(ApplicationMetaModel application, AnnotationKey key, AnnotationState added) { ElementHandle.Method methodHandle = (ElementHandle.Method)key.getElement(); ElementHandle.Type controllerHandle = methodHandle.getType(); ControllersMetaModel controllers = application.getChild(ControllersMetaModel.KEY); ControllerMetaModel controller = controllers.get(controllerHandle); if (controller == null) { controllers.add(controller = new ControllerMetaModel(controllerHandle)); } controller.addMethod(application.model, key, added); }
public static Method create(ExecutableElement elt) { TypeElement typeElt = (TypeElement)elt.getEnclosingElement(); String name = elt.getSimpleName().toString(); Name fqn = Name.parse(typeElt.getQualifiedName().toString()); ArrayList<String> parameterTypes = new ArrayList<String>(); for (TypeMirror parameterType : ((ExecutableType)elt.asType()).getParameterTypes()) { parameterTypes.add(parameterType.toString()); } return new Method(fqn, name, parameterTypes); }
public static Method create(String type, String name, String... parameterTypes) { ArrayList<String> tmp = new ArrayList<String>(parameterTypes.length); Collections.addAll(tmp, parameterTypes); return new Method(Name.parse(type), name, tmp); }