return ElementHandle.Type.create((TypeElement)((DeclaredType)value).asElement());
return ElementHandle.Type.create((TypeElement)((DeclaredType)value).asElement());
for (ValueType<?> valueType : ValueType.DEFAULT) { for (Class<?> type : valueType.getTypes()) { valueTypes.add(ElementHandle.Type.create(Name.create(type))); if (declaredArgumentElement instanceof TypeElement) { ElementHandle.Type valueType = ElementHandle.Type.create((TypeElement) declaredArgumentElement); valueTypes.add(valueType);
for (ValueType<?> valueType : ValueType.DEFAULT) { for (Class<?> type : valueType.getTypes()) { valueTypes.add(ElementHandle.Type.create(Name.create(type))); if (declaredArgumentElement instanceof TypeElement) { ElementHandle.Type valueType = ElementHandle.Type.create((TypeElement) declaredArgumentElement); valueTypes.add(valueType);
ElementHandle.Type valueTypeHandle = ElementHandle.Type.create(valueType);
ElementHandle.Type valueTypeHandle = ElementHandle.Type.create(valueType);
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(MetaModelEvent.AFTER_ADD, events.get(2).getType()); 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(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(MetaModelEvent.AFTER_ADD, events.get(2).getType()); 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"); } }
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"); } }
@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(); } } }