@Override public Object getValue(Object def) { Object ret = value.getValue(); return ret == null ? calculateDef(def) : ret; }
@Override public Object getValue(Supplier<Object> defSupplier) { Object ret = value.getValue(); return ret == null ? calculateDef(defSupplier.get()) : ret; }
@Override public <T> T getValue(Function<Object, T> transformer, T def) { T ret = transformer.apply(getValue()); return ret == null ? calculateDef(def) : ret; }
@Override public <T> T getValue(Function<Object, T> transformer, Supplier<T> defSupplier) { T ret = transformer.apply(getValue()); return ret == null ? calculateDef(defSupplier.get()) : ret; }
@Override public <T> List<T> getList(Function<Object, T> transformer, List<T> def) { List<T> ret = getList(transformer); return ret.isEmpty() ? calculateDef(def) : ret; }
@Override public <T> List<T> getList(Function<Object, T> transformer, Supplier<List<T>> defSupplier) { List<T> ret = getList(transformer); return ret.isEmpty() ? calculateDef(defSupplier.get()) : ret; }
@Override public <T> List<T> getList(TypeToken<T> type, Supplier<List<T>> defSupplier) throws ObjectMappingException { List<T> ret = getValue(new TypeToken<List<T>>() {} .where(new TypeParameter<T>() {}, type), defSupplier); return ret.isEmpty() ? calculateDef(defSupplier.get()) : ret; }
@Override public <T> List<T> getList(TypeToken<T> type, List<T> def) throws ObjectMappingException { List<T> ret = getValue(new TypeToken<List<T>>() {} .where(new TypeParameter<T>() {}, type), def); return ret.isEmpty() ? calculateDef(def) : ret; }