@Override public Object getValue(Object def) { Object ret = value.getValue(); return ret == null ? storeDefault(def) : ret; }
@Override public Object getValue(Object def) { Object ret = value.getValue(); return ret == null ? calculateDef(def) : ret; }
@Override public Object getValue(Object def) { Object ret = value.getValue(); return ret == null ? storeDefault(def) : ret; }
@Override public Object getValue(Supplier<Object> defSupplier) { Object ret = value.getValue(); return ret == null ? calculateDef(defSupplier.get()) : ret; }
@Override public Object getValue(@NonNull Supplier<Object> defSupplier) { Object ret = value.getValue(); return ret == null ? storeDefault(defSupplier.get()) : ret; }
@Override public Object getValue(@NonNull Supplier<Object> defSupplier) { Object ret = value.getValue(); return ret == null ? storeDefault(defSupplier.get()) : ret; }
@Override public <T> List<T> getList(Function<Object, T> transformer) { final ImmutableList.Builder<T> build = ImmutableList.builder(); ConfigValue value = this.value; if (value instanceof ListConfigValue) { for (SimpleConfigurationNode o : value.iterateChildren()) { T transformed = transformer.apply(o.getValue()); if (transformed != null) { build.add(transformed); } } } else { T transformed = transformer.apply(value.getValue()); if (transformed != null) { build.add(transformed); } } return build.build(); }
@NonNull @Override public <T> List<T> getList(Function<Object, T> transformer) { final ImmutableList.Builder<T> ret = ImmutableList.builder(); ConfigValue value = this.value; if (value instanceof ListConfigValue) { // transform each value individually if the node is a list for (SimpleConfigurationNode o : value.iterateChildren()) { T transformed = transformer.apply(o.getValue()); if (transformed != null) { ret.add(transformed); } } } else { // transfer the value as a whole T transformed = transformer.apply(value.getValue()); if (transformed != null) { ret.add(transformed); } } return ret.build(); }
@NonNull @Override public <T> List<T> getList(Function<Object, T> transformer) { final ImmutableList.Builder<T> ret = ImmutableList.builder(); ConfigValue value = this.value; if (value instanceof ListConfigValue) { // transform each value individually if the node is a list for (SimpleConfigurationNode o : value.iterateChildren()) { T transformed = transformer.apply(o.getValue()); if (transformed != null) { ret.add(transformed); } } } else { // transfer the value as a whole T transformed = transformer.apply(value.getValue()); if (transformed != null) { ret.add(transformed); } } return ret.build(); }
newValue = new ListConfigValue(this, oldValue.getValue());
protected void attachChild(SimpleConfigurationNode child) { if (isVirtual()) { throw new IllegalStateException("This parent is not currently attached. This is an internal state violation."); } if (!child.getParentAttached().equals(this)) { throw new IllegalStateException("Child " + child + " path is not a direct parent of me (" + this + "), cannot attach"); } ConfigValue oldValue, newValue; synchronized (this) { newValue = oldValue = this.value; if (!(oldValue instanceof MapConfigValue)) { if (child.key instanceof Integer) { if (oldValue instanceof NullConfigValue) { newValue = new ListConfigValue(this); } else if (!(oldValue instanceof ListConfigValue)) { newValue = new ListConfigValue(this, oldValue.getValue()); } } else { newValue = new MapConfigValue(this); } } possiblyDetach(newValue.putChild(child.key, child)); value = newValue; } if (newValue != oldValue) { oldValue.clear(); } child.attached = true; }
newValue = new ListConfigValue(this, oldValue.getValue());
newValue = new ListConfigValue(this, oldValue.getValue());