@Override public Node representData(Object data) { ConfigurationSerializable serializable = (ConfigurationSerializable) data; Map<String, Object> values = new LinkedHashMap<String, Object>(); values.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(serializable.getClass())); values.putAll(serializable.serialize()); return super.representData(values); } }
static Wrapper<ImmutableMap<String, ?>> newWrapper(ConfigurationSerializable obj) { return new Wrapper<ImmutableMap<String, ?>>(ImmutableMap.<String, Object>builder().put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(obj.getClass())).putAll(obj.serialize()).build()); }
@Override public void write(JsonWriter out, ConfigurationSerializable value) { Map<String, Object> serialized = value.serialize(); Map<String, Object> map = new LinkedHashMap<>(serialized.size() + 1); map.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(value.getClass())); map.putAll(serialized); this.gson.toJson(map, RAW_OUTPUT_TYPE, out); }
private Map<String, Object> serializeEffects(Map container) { final Map<String, Object> data = new LinkedHashMap<>(); int i = 0; for (final Object f : container.keySet()) { final ActionEffect actionEffect = (ActionEffect) f; data.put(actionEffect.name().toLowerCase(), ((ConfigurationSerializable) container.get(actionEffect)).serialize()); i++; } return data; } }
@Override public void write(JsonWriter out, ConfigurationSerializable value) { Map<String, Object> serialized = value.serialize(); Map<String, Object> map = new LinkedHashMap<>(serialized.size() + 1); map.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(value.getClass())); map.putAll(serialized); this.gson.toJson(map, RAW_OUTPUT_TYPE, out); }
@Override public void serialize(TypeToken<?> type, ConfigurationSerializable from, ConfigurationNode to) throws ObjectMappingException { Map<String, Object> serialized = from.serialize(); Map<String, Object> map = new LinkedHashMap<>(serialized.size() + 1); map.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(from.getClass())); map.putAll(serialized); to.setValue(map); }
@Override public Node representData(Object data) { ConfigurationSerializable serializable = (ConfigurationSerializable) data; Map<String, Object> values = new LinkedHashMap<String, Object>(); values.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(serializable.getClass())); values.putAll(serializable.serialize()); return super.representData(values); } }
@Override public void serialize(TypeToken<?> type, ConfigurationSerializable from, ConfigurationNode to) throws ObjectMappingException { Map<String, Object> serialized = from.serialize(); Map<String, Object> map = new LinkedHashMap<>(serialized.size() + 1); map.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(from.getClass())); map.putAll(serialized); to.setValue(map); }
@Deprecated public static Map<String, Object> serialize(ConfigurationSerializable cs) { Map<String, Object> returnVal = handleSerialization(cs.serialize()); returnVal.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(cs.getClass())); return returnVal; }
static Wrapper<ImmutableMap<String, ?>> newWrapper(ConfigurationSerializable obj) { return new Wrapper<ImmutableMap<String, ?>>(ImmutableMap.<String, Object>builder().put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(obj.getClass())).putAll(obj.serialize()).build()); }
/** * Saves all stored items into the file asynchronly. */ @Override public void persist() { final BallMeta[] items = this.items.toArray(new BallMeta[this.items.size()]); this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> { try { synchronized (this.fileName) { final File storage = new File(this.plugin.getDataFolder(), this.fileName); final FileConfiguration configuration = new YamlConfiguration(); configuration.load(storage); for (int i = 0; i < items.length; i++) { final ConfigurationSerializable serializable = (ConfigurationSerializable) items[i]; configuration.set("meta." + (i + 1) + ".ball", serializable.serialize()); configuration.save(storage); } } } catch (IOException | InvalidConfigurationException ex) { this.plugin.getLogger().log(Level.WARNING, "Failed to save meta.", ex); } }); }
/** * Saves the current ball and destroys the entity from the server. * * @param destroy should ball be destroyed after saving * @param ball ball */ public void saveAndDestroy(Ball ball, boolean destroy) { this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> { try { synchronized (this.fileName) { final File storageFile = new File(this.plugin.getDataFolder(), this.fileName); final FileConfiguration configuration = new YamlConfiguration(); configuration.load(storageFile); final ConfigurationSerializable serializable = (ConfigurationSerializable) ball; configuration.set("balls." + ball.getUUID().toString(), serializable.serialize()); configuration.save(storageFile); if (destroy) { this.plugin.getServer().getScheduler().runTask(this.plugin, ball::remove); } } } catch (IOException | InvalidConfigurationException ex) { this.plugin.getLogger().log(Level.WARNING, "Failed to save ball.", ex); } }); }