@Override public Text deserialize(TypeToken<?> type, ConfigurationNode value) throws ObjectMappingException { StringWriter writer = new StringWriter(); GsonConfigurationLoader gsonLoader = GsonConfigurationLoader.builder() .setIndent(0) .setSink(() -> new BufferedWriter(writer)) .setHeaderMode(HeaderMode.NONE) .build(); try { gsonLoader.save(value); } catch (IOException e) { throw new ObjectMappingException(e); } return Sponge.getDataManager().deserialize(Text.class, DataContainer.createNew().set(Queries.JSON, writer.toString())).get(); }
@Override public void serialize(TypeToken<?> type, Text obj, ConfigurationNode value) throws ObjectMappingException { String json = (String) obj.toContainer().get(Queries.JSON).get(); GsonConfigurationLoader gsonLoader = GsonConfigurationLoader.builder() .setSource(() -> new BufferedReader(new StringReader(json))) .build(); try { value.setValue(gsonLoader.load()); } catch (IOException e) { throw new ObjectMappingException(e); } }
private ConfigurationLoader<? extends ConfigurationNode> createLoader(Path file) { return GsonConfigurationLoader.builder() .setPath(file) .setIndent(4) .setLenient(true) .build(); }
@Test public void testLoadingEmptyFile(@TempDirectory.TempDir Path tempDir) throws IOException { final File tempFile = tempDir.resolve("text3.txt").toFile(); tempFile.createNewFile(); ConfigurationLoader<ConfigurationNode> loader = GsonConfigurationLoader.builder() .setFile(tempFile) .build(); loader.load(); }
@Override public GsonConfigurationLoader build() { return new GsonConfigurationLoader(this); } }
public static Builder builder() { return new Builder(); }
@Override protected void loadInternal(ConfigurationNode node, BufferedReader reader) throws IOException { reader.mark(1); if (reader.read() == -1) { return; } reader.reset(); try (JsonReader parser = new JsonReader(reader)) { parser.setLenient(lenient); parseValue(parser, node); } }
private static void generateArray(JsonWriter generator, ConfigurationNode node) throws IOException { if (!node.hasListChildren()) { throw new IOException("Node passed to generateArray does not have list children!"); } List<? extends ConfigurationNode> children = node.getChildrenList(); generator.beginArray(); for (ConfigurationNode child : children) { generateValue(generator, child); } generator.endArray(); } }
@Override public void serialize(TypeToken<?> type, Text obj, ConfigurationNode value) throws ObjectMappingException { String json = (String) obj.toContainer().get(Queries.JSON).get(); GsonConfigurationLoader gsonLoader = GsonConfigurationLoader.builder() .setSource(() -> new BufferedReader(new StringReader(json))) .build(); try { value.setValue(gsonLoader.load()); } catch (IOException e) { throw new ObjectMappingException(e); } }
@Test public void testSavingEmptyFile(@TempDirectory.TempDir Path tempDir) throws IOException { final File tempFile = tempDir.resolve("text2.txt").toFile(); tempFile.createNewFile(); ConfigurationLoader<ConfigurationNode> loader = GsonConfigurationLoader.builder() .setFile(tempFile) .build(); ConfigurationNode n = SimpleConfigurationNode.root(); loader.save(n); }
@NonNull @Override public GsonConfigurationLoader build() { return new GsonConfigurationLoader(this); } }
/** * Creates a new {@link GsonConfigurationLoader} builder. * * @return A new builder */ @NonNull public static Builder builder() { return new Builder(); }
@Override protected void loadInternal(ConfigurationNode node, BufferedReader reader) throws IOException { reader.mark(1); if (reader.read() == -1) { return; } reader.reset(); try (JsonReader parser = new JsonReader(reader)) { parser.setLenient(lenient); parseValue(parser, node); } }
private static void generateArray(JsonWriter generator, ConfigurationNode node) throws IOException { if (!node.hasListChildren()) { throw new IOException("Node passed to generateArray does not have list children!"); } List<? extends ConfigurationNode> children = node.getChildrenList(); generator.beginArray(); for (ConfigurationNode child : children) { generateValue(generator, child); } generator.endArray(); } }
@NonNull @Override public GsonConfigurationLoader build() { return new GsonConfigurationLoader(this); } }
/** * Creates a new {@link GsonConfigurationLoader} builder. * * @return A new builder */ @NonNull public static Builder builder() { return new Builder(); }
@Override protected void loadInternal(ConfigurationNode node, BufferedReader reader) throws IOException { reader.mark(1); if (reader.read() == -1) { return; } reader.reset(); try (JsonReader parser = new JsonReader(reader)) { parser.setLenient(lenient); parseValue(parser, node); } }