private static String encode(DataSchema schema, String format) throws IOException { if (format.equals(PdlSchemaParser.FILETYPE)) { StringWriter writer = new StringWriter(); SchemaToPdlEncoder encoder = new SchemaToPdlEncoder(writer); encoder.setTypeReferenceFormat(AbstractSchemaEncoder.TypeReferenceFormat.PRESERVE); encoder.encode(schema); return writer.toString(); } else if (format.equals(SchemaParser.FILETYPE)) { JsonBuilder.Pretty pretty = JsonBuilder.Pretty.INDENTED; JsonBuilder builder = new JsonBuilder(pretty); try { SchemaToJsonEncoder encoder = new SchemaToJsonEncoder(builder, AbstractSchemaEncoder.TypeReferenceFormat.PRESERVE); encoder.encode(schema); return builder.result(); } finally { builder.closeQuietly(); } } else { throw new IllegalArgumentException("Unsupported format: " + format); } }
/** * Encode a {@link DataSchema} to a JSON encoded string. * * @param schema is the {@link DataSchema} to build a JSON encoded output for. * @param pretty is the pretty printing mode. * @return the JSON encoded string representing the {@link DataSchema}. */ public static String schemaToJson(DataSchema schema, JsonBuilder.Pretty pretty) { JsonBuilder builder = null; try { builder = new JsonBuilder(pretty); final SchemaToJsonEncoder encoder = new SchemaToJsonEncoder(builder); encoder.encode(schema); return builder.result(); } catch (IOException exc) { return exc.getMessage(); } finally { if (builder != null) { builder.closeQuietly(); } } }
try builder = new JsonBuilder(pretty); final SchemaToJsonEncoder encoder = new SchemaToJsonEncoder(builder); for (DataSchema schema : schemas)
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; }
try builder = new JsonBuilder(options.getPretty()); final SchemaToAvroJsonEncoder serializer = new SchemaToAvroJsonEncoder(builder, schema, fieldOverridesProvider, options); serializer.encode(schema);
try builder = new JsonBuilder(JsonBuilder.Pretty.SPACES); final SchemaToJsonEncoder encoder = new SchemaToJsonEncoder(builder, AbstractSchemaEncoder.TypeReferenceFormat.MINIMIZE); encoder.encode(schemaToEncode);
/*package*/ static String buildDataSchemaType(DataSchema schema) { if (schema instanceof PrimitiveDataSchema || schema instanceof NamedDataSchema) { return schema.getUnionMemberKey(); } JsonBuilder builder = null; try { builder = new JsonBuilder(JsonBuilder.Pretty.SPACES); final SchemaToJsonEncoder encoder = new SchemaToJsonEncoder(builder, AbstractSchemaEncoder.TypeReferenceFormat.MINIMIZE); encoder.encode(schema); return builder.result(); } catch (IOException e) { throw new RestLiInternalException("could not encode schema for '" + schema.toString() + "'", e); } finally { if (builder != null) { builder.closeQuietly(); } } }