Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package it.cicerone.yaml;
- import java.util.Map;
- import org.apache.commons.lang3.Validate;
- import lombok.Getter;
- /**
- * Questa è un'implementazione di {@link Configuration} che non salva e non
- * carica da nessuna fonte e salva tutti i valori solamente in memoria.
- * È utile per configurazioni temporanee per specificare dei predefiniti.
- */
- public class MemoryConfiguration extends MemorySection implements Configuration {
- @Getter protected Configuration defaults;
- protected MemoryConfigurationOptions options;
- /**
- * Crea un {@link MemoryConfiguration} vuoto senza predefiniti.
- */
- public MemoryConfiguration() {}
- /**
- * Crea un {@link MemoryConfiguration} vuoto con il {@link Configuration}
- * specificato come fonte di tutti i valori predefiniti.
- *
- * @param defaults Fornitore del valore predefinito
- * @throws IllegalArgumentException lanciata se il predefinito è nullo.
- */
- public MemoryConfiguration(Configuration defaults) {
- this.defaults = defaults;
- }
- @Override
- public void addDefault(String path, Object value) {
- Validate.notNull(path, "Path may not be null");
- if (defaults == null) {
- defaults = new MemoryConfiguration();
- }
- defaults.set(path, value);
- }
- public void addDefaults(Map<String, Object> defaults) {
- Validate.notNull(defaults, "Defaults may not be null");
- for (Map.Entry<String, Object> entry : defaults.entrySet()) {
- addDefault(entry.getKey(), entry.getValue());
- }
- }
- public void addDefaults(Configuration defaults) {
- Validate.notNull(defaults, "Defaults may not be null");
- addDefaults(defaults.getValues(true));
- }
- public void setDefaults(Configuration defaults) {
- Validate.notNull(defaults, "Defaults may not be null");
- this.defaults = defaults;
- }
- @Override
- public ConfigurationSection getParent() {
- return null;
- }
- public MemoryConfigurationOptions options() {
- if (options == null) {
- options = new MemoryConfigurationOptions(this);
- }
- return options;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement