Annotations.CLASS_NAME.get(Names.typeName(union.name()), unionTypeDeclaration)); TypeSpec.Builder builder = TypeSpec.classBuilder(name) .superclass(ParameterizedTypeName.get(ClassName.get(StdDeserializer.class), unionTypeName)) .addStatement("$T<String, Object> map = mapper.readValue(jsonParser, Map.class)", Map.class); for (TypeDeclaration typeDeclaration : union.of()) {
private TypeDeclaration getParent(UnionTypeDeclaration objectType, String typeName, RamlRoot document) { Map<String, RamlDataType> types = document.getTypes(); TypeDeclaration parent = null; if (!RamlTypeHelper.isBaseObject(typeName)) { parent = types.get(typeName).getType(); } else if (objectType.parentTypes() != null && objectType.parentTypes().size() > 0) { TypeDeclaration tempParent = objectType.parentTypes().get(0); // java // doesnt // support // multiple // parents // take // first; if (!RamlTypeHelper.isBaseObject(tempParent.name())) { parent = types.get(tempParent.name()).getType(); } } else { parent = null; } return parent; }
private String getClassName(TypeDeclaration type) { UnionTypeDeclaration objectType = (UnionTypeDeclaration) type; String name = StringUtils.capitalize(objectType.name()); // For mime types we need to take the type not the name try { MimeType.valueOf(name); name = objectType.type(); } catch (Exception ex) { // not a valid mimetype do nothing logger.debug("mime: " + name); } return name; }
@Override public TypeSpec.Builder classCreated(UnionPluginContext unionPluginContext, UnionTypeDeclaration type, TypeSpec.Builder builder, EventType eventType) { String namespace = type.xml() != null && type.xml().namespace() != null ? type.xml().namespace() : "##default"; String name = type.xml() != null && type.xml().name() != null ? type.xml().name() : type.name(); if (eventType == EventType.IMPLEMENTATION) { builder.addAnnotation(AnnotationSpec.builder(XmlAccessorType.class) .addMember("value", "$T.$L", XmlAccessType.class, "FIELD").build()); AnnotationSpec.Builder annotation = AnnotationSpec.builder(XmlRootElement.class) .addMember("namespace", "$S", namespace) .addMember("name", "$S", name); builder.addAnnotation(annotation.build()); } else { builder.addAnnotation(AnnotationSpec.builder(XmlRootElement.class) .addMember("namespace", "$S", namespace) .addMember("name", "$S", name).build()); } return builder; }
private TypeSpec.Builder getDeclaration(final GenerationContext generationContext, UnionPluginContext context, CreationResult preCreationResult) { TypeSpec.Builder typeSpec = TypeSpec.interfaceBuilder(preCreationResult.getJavaName(EventType.INTERFACE)).addModifiers(Modifier.PUBLIC); List<TypeName> names = FluentIterable.from(union.of()).transform(new Function<TypeDeclaration, TypeName>() { @Nullable @Override
@Override public void onUnionType(CurrentBuild currentBuild, TypeSpec.Builder builder, V10GType typeDeclaration) { if (!(typeDeclaration.implementation() instanceof UnionTypeDeclaration)) { return; } UnionTypeDeclaration unionTypeDeclaration = (UnionTypeDeclaration) typeDeclaration.implementation(); ClassName deserializer = ClassName.get(currentBuild.getSupportPackage(), Names.typeName(unionTypeDeclaration.name(), "deserializer")); ClassName serializer = ClassName.get(currentBuild.getSupportPackage(), Names.typeName(unionTypeDeclaration.name(), "serializer")); builder.addAnnotation(AnnotationSpec.builder(JsonDeserialize.class) .addMember("using", "$T.class", deserializer).build()); builder.addAnnotation(AnnotationSpec.builder(JsonSerialize.class) .addMember("using", "$T.class", serializer).build()); currentBuild.newSupportGenerator(new UnionDeserializationGenerator(currentBuild, typeDeclaration, deserializer)); currentBuild.newSupportGenerator(new UnionSerializationGenerator(currentBuild, typeDeclaration, serializer)); } }
for (TypeDeclaration typeDeclaration : union.of()) {
@Override public TypeSpec.Builder classCreated(UnionPluginContext unionPluginContext, UnionTypeDeclaration ramlType, TypeSpec.Builder incoming, EventType eventType) { ClassName deserializer = ClassName.get("", unionPluginContext.creationResult().getJavaName(EventType.INTERFACE).simpleName(), Names.typeName(ramlType.name(), "deserializer")); ClassName serializer = ClassName.get("", unionPluginContext.creationResult().getJavaName(EventType.INTERFACE).simpleName(), Names.typeName("serializer")); createSerializer(serializer, ramlType, incoming, eventType); createDeserializer(unionPluginContext, deserializer, ramlType, incoming, eventType); incoming.addAnnotation(AnnotationSpec.builder(JsonDeserialize.class) .addMember("using", "$T.class", deserializer).build()); incoming.addAnnotation(AnnotationSpec.builder(JsonSerialize.class) .addMember("using", "$T.class", serializer).build()); return incoming; }
.addException(JsonProcessingException.class); for (TypeDeclaration typeDeclaration : union.of()) {
@Override public TypeSpec.Builder classCreated(UnionPluginContext unionPluginContext, UnionTypeDeclaration ramlType, TypeSpec.Builder incoming, EventType eventType) { ClassName deserializer = ClassName.get("", unionPluginContext.creationResult().getJavaName(EventType.INTERFACE).simpleName(), Names.typeName(ramlType.name(), "deserializer")); ClassName serializer = ClassName.get("", unionPluginContext.creationResult().getJavaName(EventType.INTERFACE).simpleName(), Names.typeName("serializer")); createSerializer(serializer, ramlType, incoming, eventType); createDeserializer(unionPluginContext, deserializer, ramlType, incoming, eventType); incoming.addAnnotation(AnnotationSpec.builder(JsonDeserialize.class) .addMember("using", "$T.class", deserializer).build()); incoming.addAnnotation(AnnotationSpec.builder(JsonSerialize.class) .addMember("using", "$T.class", serializer).build()); return incoming; }
for (TypeDeclaration typeDeclaration : union.of()) {
.addException(JsonProcessingException.class); for (TypeDeclaration typeDeclaration : union.of()) {
for (TypeDeclaration unitedType : union.of()) {
.addException(JsonProcessingException.class); for (TypeDeclaration typeDeclaration : union.of()) {
.build()); for (TypeDeclaration typeDeclaration : union.of()) {
@Override public FieldSpec.Builder anyFieldCreated(UnionPluginContext context, UnionTypeDeclaration union, TypeSpec.Builder typeSpec, FieldSpec.Builder anyType, EventType eventType) { AnnotationSpec.Builder elementsAnnotation = AnnotationSpec.builder(XmlElements.class); for (TypeDeclaration typeDeclaration : union.of()) { elementsAnnotation.addMember("value", "$L", AnnotationSpec .builder(XmlElement.class) .addMember("name", "$S", typeDeclaration.name()) .addMember("type", "$T.class",context.creationResult().getJavaName(EventType.IMPLEMENTATION) ) .build()); } anyType.addAnnotation(elementsAnnotation.build()); return anyType; } }
for (TypeDeclaration typeDeclaration : union.of()) {