/** * Write a map with string keys and values. * * @param value provides the map to write. */ public void writeMap(Map<String, ?> value) throws IOException { writeStartObject(); writeProperties(value); writeEndObject(); }
public File writeFile(File outdirFile, String fileName) throws IOException { fileName += RestConstants.SNAPSHOT_FILENAME_EXTENTION; final File file = new File(outdirFile, fileName); FileOutputStream fileOutputStream = new FileOutputStream(file); JsonBuilder jsonBuilder = new JsonBuilder(JsonBuilder.Pretty.INDENTED); SchemaToJsonEncoder encoder = new SchemaToJsonEncoder(jsonBuilder); jsonBuilder.writeStartObject(); jsonBuilder.writeFieldName(Snapshot.MODELS_KEY); jsonBuilder.writeStartArray(); List<NamedDataSchema> models = generateModelList(); models.sort(Comparator.comparing(NamedDataSchema::getFullName)); for(DataSchema model : models){ encoder.encode(model); } jsonBuilder.writeEndArray(); jsonBuilder.writeFieldName(Snapshot.SCHEMA_KEY); jsonBuilder.writeDataTemplate(_topLevelSchema, true); jsonBuilder.writeEndObject(); try { fileOutputStream.write(jsonBuilder.result().getBytes()); } finally { fileOutputStream.close(); jsonBuilder.close(); } return file; }
encode(arrayDataSchema.getItems(), arrayDataSchema.isItemsDeclaredInline()); encodeProperties(schema); _builder.writeEndObject(); break; case MAP: encode(mapDataSchema.getValues(), mapDataSchema.isValuesDeclaredInline()); encodeProperties(schema); _builder.writeEndObject(); break; case UNION:
_builder.writeEndObject();
_builder.writeEndObject();
/** * Encode a specific {@link com.linkedin.data.schema.UnionDataSchema.Member} of a union. * * @param member The specific union member that needs to be encoded. * @throws IOException if there is an error while encoding. */ protected void encodeUnionMember(UnionDataSchema.Member member) throws IOException { if (member.hasAlias()) { _builder.writeStartObject(); // alias _builder.writeStringField(ALIAS_KEY, member.getAlias(), true); // type _builder.writeFieldName(TYPE_KEY); encode(member.getType(), member.isDeclaredInline()); // doc _builder.writeStringField(DOC_KEY, member.getDoc(), false); // properties _builder.writeProperties(member.getProperties()); _builder.writeEndObject(); } else { // for member without aliases, encode the type encode(member.getType(), member.isDeclaredInline()); } }