/** * Only specific enums should be added to the schema; most enums in the * model should not. This method returns true for enums that should be * added to the schema, and false for enums that should not. */ public boolean isSchemaEnum(Type type) { return SCHEMA_ENUMS.contains(type.getName()); }
public Model() { // Create the anonymous module: Module anonymousModule = new Module(); anonymousModule.setModel(this); modules.add(anonymousModule); // Add the builtin types: booleanType = new PrimitiveType(); booleanType.setName(NameParser.parseUsingCase("Boolean")); booleanType.setModule(anonymousModule); addType(booleanType); stringType = new PrimitiveType(); stringType.setName(NameParser.parseUsingCase("String")); stringType.setModule(anonymousModule); addType(stringType); integerType = new PrimitiveType(); integerType.setName(NameParser.parseUsingCase("Integer")); integerType.setModule(anonymousModule); addType(integerType); dateType = new PrimitiveType(); dateType.setName(NameParser.parseUsingCase("Date")); dateType.setModule(anonymousModule); addType(dateType); decimalType = new PrimitiveType(); decimalType.setName(NameParser.parseUsingCase("Decimal")); decimalType.setModule(anonymousModule); addType(decimalType); }
public void setElementType(Type elementType) { this.elementType = elementType; setModule(elementType.getModule()); }
public String getSchemaTypeName(Type type) { Model model = type.getModel(); if (type == model.getBooleanType()) { return "xs:boolean"; } if (type == model.getStringType()) { return "xs:string"; } if (type == model.getIntegerType()) { return "xs:int"; } if (type == model.getDateType()) { return "xs:dateTime"; } if (type == model.getDecimalType()) { return "xs:decimal"; } if (type instanceof ListType) { ListType listType = (ListType) type; Type elementType = listType.getElementType(); return getSchemaTypeName(names.getPlural(elementType.getName())); } return getSchemaTypeName(type.getName()); }
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(); }
/** * Finds the type corresponding to the given name and assigns it using the given setter. If there is no type * corresponding to the given name yet then a new undefined type will be created and assigned, and it will be * remembered so that it can later be replaced with the real type. * * @param typeName the name of the type to find * @param typeSetter the setter used to assign the type */ private void assignType(Name typeName, TypeSetter typeSetter) { // First try to find a type that has already been defined: Type type = model.getType(typeName); // If the type hasn't been defined then we create need to create a dummy type if (type == null) { type = new UndefinedType(); type.setName(typeName); } // If we are returning an undefined type then we need to to remember to replace it later, saving the name of // the type and the setter provided by the calller: if (type instanceof UndefinedType) { TypeUsage typeUsage = new TypeUsage(); typeUsage.setName(typeName); typeUsage.setSetter(typeSetter); undefinedTypeUsages.add(typeUsage); } // Assign the type: if (typeSetter != null) { typeSetter.accept(type); } }
@Override public String toString() { return elementType.toString() + "[]"; } }
javaBuffer.addLine("if (object.%1$sPresent()) {", field); if (type instanceof PrimitiveType) { Model model = type.getModel(); if (type == model.getBooleanType()) { javaBuffer.addLine("writer.writeBoolean(\"%1$s\", object.%2$s());", tag, field); if (elementType instanceof StructType) { JavaClassName writerName = javaTypes.getXmlWriterName(elementType); String elementTag = schemaNames.getSchemaTagName(elementType.getName()); javaBuffer.addImport(writerName); javaBuffer.addLine( Model model = type.getModel(); if (elementType == model.getBooleanType()) { javaBuffer.addLine("writer.writeBooleans(\"%1$s\", object.%2$s());", tag, field);
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("}"); }
javaBuffer.addLine("case \"%1$s\":", tag); if (type instanceof PrimitiveType) { Model model = type.getModel(); if (type == model.getBooleanType()) { javaBuffer.addLine("object.%1$s(Boolean.parseBoolean(image));", field);
private String getName(Type type) { return names.getCapitalized(type.getName()); }
javaBuffer.addLine("case \"%1$s\":", tag); if (type instanceof PrimitiveType) { Model model = type.getModel(); if (type == model.getBooleanType()) { javaBuffer.addLine("object.%1$s(reader.readBoolean());", field); Model model = type.getModel(); if (elementType == model.getBooleanType()) { javaBuffer.addLine("object.%1$s(reader.readBooleans());", field);
private String getMemberSchemaTypeName(Type declaringType, Type memberType, Name memberName) { String exception = getMemberSchemaTypeNameException(declaringType.getName(), memberName); if (exception != null) { return exception; } return schemaNames.getSchemaTypeName(memberType); }
javaBuffer.addLine("case \"%1$s\":", tag); if (type instanceof PrimitiveType) { Model model = type.getModel(); if (type == model.getBooleanType()) { javaBuffer.addLine("object.%1$s(reader.readBoolean());", field); Model model = type.getModel(); if (elementType == model.getBooleanType()) { javaBuffer.addLine("object.%1$s(reader.readBooleans());", field);
private String getAttributePath(List<MemberInvolvementTree> list, String paramName, Operator operator) { StringBuilder attributePath = new StringBuilder(); for (int i=0; i<list.size(); i++) { MemberInvolvementTree current = list.get(i); attributePath.append(isOrGet(current.getType())).append(javaNames.getJavaClassStyleName(current.getName())).append("()"); if (current.isCollection()) { Name name = ((ListType)current.getType()).getElementType().getName(); String getterName = javaNames.getJavaClassStyleName(name) + "s"; if (i==list.size()-1) { //the last element of the expression is a collection StringBuilder soFar = new StringBuilder(paramName).append(attributePath).append(".get").append(getterName).append("()"); if (operator==Operator.AND) { attributePath.append("!=null && ").append(soFar).append("!=null && "); attributePath.append(soFar).append(".size() > 0"); } else { attributePath.append("==null || ").append(soFar).append("==null || "); attributePath.append(soFar).append(".size() == 0"); } } else { attributePath.append(".get").append(getterName).append("().get(0)"); } } } return attributePath.toString(); }
javaBuffer.addLine("if (object.%1$sPresent()) {", field); if (type instanceof PrimitiveType) { Model model = type.getModel(); if (type == model.getBooleanType()) { javaBuffer.addLine("writer.writeBoolean(\"%1$s\", object.%2$s());", tag, field); Model model = type.getModel(); if (elementType == model.getBooleanType()) { javaBuffer.addLine("writer.writeBooleans(\"%1$s\", object.%2$s());", tag, field);
private String getTypeRef(Type type) { if (type instanceof StructType || type instanceof PrimitiveType || type instanceof EnumType) { return type.getName().toString(); } if (type instanceof ListType) { ListType listType = (ListType) type; Type elementType = listType.getElementType(); return getTypeRef(elementType) + "[]"; } return ""; }
Model model = type.getModel(); String field = javaNames.getJavaMemberStyleName(name); String property = javaNames.getJavaPropertyStyleName(name);
private String getTypeRef(Type type) { if (type instanceof StructType || type instanceof PrimitiveType || type instanceof EnumType) { return type.getName().toString(); } if (type instanceof ListType) { ListType listType = (ListType) type; Type elementType = listType.getElementType(); return getTypeRef(elementType) + "[]"; } return ""; }