@Override
public TypeSpec.Builder classCreated(ObjectPluginContext objectPluginContext, ObjectTypeDeclaration 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;
}