Fix long-int conversion (config)
Forgot to commit yesterday
This commit is contained in:
parent
34637ac536
commit
fb9c108c52
2 changed files with 11 additions and 7 deletions
|
@ -16,6 +16,7 @@ import java.lang.reflect.Array;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.function.BiFunction;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -95,16 +96,21 @@ public class ConfigData<T> {
|
||||||
set(def); //Save default value - def is always set
|
set(def); //Save default value - def is always set
|
||||||
saved = true;
|
saved = true;
|
||||||
}
|
}
|
||||||
|
BiFunction<Object, Object, Object> convert=(_val, _def) -> {
|
||||||
|
if (_val instanceof Number && _def != null)
|
||||||
|
_val = ChromaUtils.convertNumber((Number) _val,
|
||||||
|
(Class<? extends Number>) _def.getClass());
|
||||||
|
if (_val instanceof List && _def != null && _def.getClass().isArray())
|
||||||
|
_val = ((List<T>) _val).toArray((T[]) Array.newInstance(_def.getClass().getComponentType(), 0));
|
||||||
|
return _val;
|
||||||
|
};
|
||||||
if (getter != null) {
|
if (getter != null) {
|
||||||
|
val = convert.apply(val, primitiveDef);
|
||||||
T hmm = getter.apply(val);
|
T hmm = getter.apply(val);
|
||||||
if (hmm == null) hmm = def; //Set if the getter returned null
|
if (hmm == null) hmm = def; //Set if the getter returned null
|
||||||
return hmm;
|
return hmm;
|
||||||
}
|
}
|
||||||
if (val instanceof Number && def != null)
|
val = convert.apply(val, def);
|
||||||
val = ChromaUtils.convertNumber((Number) val,
|
|
||||||
(Class<? extends Number>) def.getClass());
|
|
||||||
if (val instanceof List && def != null && def.getClass().isArray())
|
|
||||||
val = ((List<T>) val).toArray((T[]) Array.newInstance(def.getClass().getComponentType(), 0));
|
|
||||||
return value = (T) val; //Always cache, if not cached yet
|
return value = (T) val; //Always cache, if not cached yet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,5 @@
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
|
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.10" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.10" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.10" level="project" />
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
Loading…
Reference in a new issue