@Override public String toString() { StringBuilder buffer = new StringBuilder(); if (declaringType != null) { buffer.append(declaringType); buffer.append(":"); } buffer.append(getName()); return buffer.toString(); } }
private String getName(StructMember member) { return names.getLowerJoined(member.getName(), "_"); }
private void generateStructWriteOne(StructType type) { // Calculate the name of the type and the XML tag: JavaClassName typeName = javaTypes.getInterfaceName(type); String tag = schemaNames.getSchemaTagName(type.getName()); // Add the required imports: javaBuffer.addImport(typeName); javaBuffer.addImport(XmlWriter.class); // Generate the method that uses the default tag name: javaBuffer.addLine("public static void writeOne(%1$s object, XmlWriter writer) {", typeName.getSimpleName()); javaBuffer.addLine( "writeOne(object, \"%1$s\", writer);", tag); javaBuffer.addLine("}"); javaBuffer.addLine(); // Generate the method that receives the tag name as parameter: javaBuffer.addLine( "public static void writeOne(%1$s object, String tag, XmlWriter writer) {", typeName.getSimpleName()); javaBuffer.addLine("writer.writeStartElement(tag);"); Stream.concat(type.attributes(), type.links()) .filter(x -> schemaNames.isRepresentedAsAttribute(x.getName())) .sorted() .forEach(this::generateStructWriteMemberAsAttribute); Stream.concat(type.attributes(), type.links()) .filter(x -> !schemaNames.isRepresentedAsAttribute(x.getName())) .sorted() .forEach(this::generateStructWriteMemberAsElement); javaBuffer.addLine("writer.writeEndElement();"); javaBuffer.addLine("}"); javaBuffer.addLine(); }
private void generateBuilderFields(StructMember member) { // Get the name of the property: Name name = member.getName(); String field = javaNames.getJavaMemberStyleName(name); // Get the type reference: Type type = member.getType(); JavaTypeReference typeReference = javaTypes.getTypeReference(type, true); javaBuffer.addImports(typeReference.getImports()); // Generate the field: javaBuffer.addLine("private %1$s %2$s;", typeReference.getText(), field); }
private void generateContainerFields(StructMember member) { // Get the name of the field: Name name = member.getName(); String field = javaNames.getJavaMemberStyleName(name); // Get the type reference: Type type = member.getType(); JavaTypeReference typeReference = javaTypes.getTypeReference(type, true); javaBuffer.addImports(typeReference.getImports()); // Generate the field: javaBuffer.addLine("private %1$s %2$s;", typeReference.getText(), field); }
private void generateBuilderSource(StructType type) { // Begin class: JavaClassName builderName = javaTypes.getBuilderName(type); javaBuffer.addLine("public class %1$s {", builderName.getSimpleName()); // Generate the fields for attributes and links: Stream.concat(type.attributes(), type.links()).sorted().forEach(this::generateBuilderFields); javaBuffer.addLine(); // Generate the methods for attributes and links: Stream.concat(type.attributes(), type.links()) .sorted() .forEach(member -> generateBuilderMethods(type, member)); // Generate the "build" method: JavaClassName typeName = javaTypes.getInterfaceName(type); JavaClassName containerName = javaTypes.getContainerName(type); javaBuffer.addImport(typeName); javaBuffer.addImport(containerName); javaBuffer.addLine("public %1$s build() {", typeName.getSimpleName()); javaBuffer.addLine( "%1$s container = new %1$s();", containerName.getSimpleName()); Stream.concat(type.attributes(), type.links()).sorted().forEach(member -> { Name name = member.getName(); String field = javaNames.getJavaMemberStyleName(name); javaBuffer.addLine("container.%1$s(%1$s);", field); }); javaBuffer.addLine( "return container;"); javaBuffer.addLine("}"); // End class: javaBuffer.addLine("}"); }
private void writeStructMemberAsAttribute(StructMember member) { // Get the name and the type: Name memberName = member.getName(); Type memberType = member.getType(); // Write the attribute definition: writer.writeStartElement(XS_URI, "attribute"); writer.writeAttribute("name", schemaNames.getSchemaTagName(memberName)); writer.writeAttribute("type", getMemberSchemaTypeName(member.getDeclaringType(), memberType, memberName)); writer.writeEndElement(); }
allMembers.addAll(type.getLinks()); List<StructMember> asAttributes = allMembers.stream() .filter(x -> schemaNames.isRepresentedAsAttribute(x.getName())) .collect(toList()); List<StructMember> asElements = allMembers.stream() .filter(x -> !schemaNames.isRepresentedAsAttribute(x.getName())) .collect(toList()); javaBuffer.addLine("public static %1$s readOne(XmlReader reader) {", typeName.getSimpleName());
private void generateStructWriteMemberAsAttribute(StructMember member) { Name name = member.getName(); Type type = member.getType(); String field = javaNames.getJavaMemberStyleName(name); String tag = schemaNames.getSchemaTagName(name); javaBuffer.addLine("if (object.%1$sPresent()) {", field); if (type instanceof PrimitiveType) { Model model = type.getModel(); if (type == model.getBooleanType() || type == model.getIntegerType() || type == model.getDecimalType()) { javaBuffer.addLine("writer.writeAttribute(\"%1$s\", object.%2$s().toString());", tag, field); } else if (type == model.getStringType()) { javaBuffer.addLine("writer.writeAttribute(\"%1$s\", object.%2$s());", tag, field); } else if (type == model.getDateType()) { // TODO: This isn't the XML schema format. javaBuffer.addLine("writer.writeAttribute(\"%1$s\", object.%2$s().toString());", tag, field); } } else if (type instanceof EnumType) { javaBuffer.addLine("writer.writeAttribute(\"%1$s\", object.%2$s().value());", tag, field); } javaBuffer.addLine("}"); }
private void generateInterfaceMembers(StructMember member) { // Get the name of the property: Name name = member.getName(); Type type = member.getType(); Model model = type.getModel(); String field = javaNames.getJavaMemberStyleName(name); // Get the type reference: JavaTypeReference typeReference = javaTypes.getTypeReference(type, false); javaBuffer.addImports(typeReference.getImports()); // Generate the getters: javaBuffer.addLine("%1$s %2$s();", typeReference, field); if (type == model.getIntegerType()) { javaBuffer.addLine("Byte %1$sAsByte();", field); javaBuffer.addLine("Short %1$sAsShort();", field); javaBuffer.addLine("Integer %1$sAsInteger();", field); javaBuffer.addLine("Long %1$sAsLong();", field); } javaBuffer.addLine(); // Generate the checker: javaBuffer.addLine("boolean %1$sPresent();", field); javaBuffer.addLine(); }
private void generateStructReadMemberFromAttribute(StructMember member) { Name name = member.getName(); Type type = member.getType(); String field = javaNames.getJavaMemberStyleName(name);
private void generateStructReadMember(StructMember member) { Name name = member.getName(); Type type = member.getType(); String field = javaNames.getJavaMemberStyleName(name);
private void generateStructReadMemberFromElement(StructMember member) { Name name = member.getName(); Type type = member.getType(); String field = javaNames.getJavaMemberStyleName(name);
private void generateStructWriteMember(StructMember member) { Name name = member.getName(); Type type = member.getType(); String field = javaNames.getJavaMemberStyleName(name);
private void writeStructMemberAsElement(StructMember member) { Name memberName = member.getName(); Type memberType = member.getType();
private void generateStructWriteMemberAsElement(StructMember member) { Name name = member.getName(); Type type = member.getType(); String field = javaNames.getJavaMemberStyleName(name);
private void generateContainerMethods(StructMember member) { Name name = member.getName(); Type type = member.getType(); Model model = type.getModel();
private void generateBuilderMethods(StructType struct, StructMember member) { Name name = member.getName(); String field = javaNames.getJavaMemberStyleName(name); String property = javaNames.getJavaPropertyStyleName(name);