chore(config-core): lift up logic for loadFromJson and writeTo
This commit is contained in:
parent
78bcde1b86
commit
dddda8b92a
|
@ -7,6 +7,7 @@ import io.gitlab.jfronny.commons.serialize.databind.api.TypeToken;
|
|||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.impl.dsl.DslEntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.impl.dsl.NothingSerializedException;
|
||||
import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
|
@ -75,13 +76,26 @@ public interface EntryInfo<T> {
|
|||
* Set this entry's value to that of the element
|
||||
* @param reader The reader to read from
|
||||
*/
|
||||
<TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> void loadFromJson(Reader reader) throws TEx, IllegalAccessException;
|
||||
default <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> void loadFromJson(Reader reader) throws TEx, IllegalAccessException {
|
||||
try {
|
||||
setValue(deserializeOneFrom(reader));
|
||||
} catch (MalformedDataException e) {
|
||||
LibJf.LOGGER.error("Could not read " + getName(), e);
|
||||
} catch (NothingSerializedException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Write the currently cached value to the writer
|
||||
* @param writer The writer to write to
|
||||
*/
|
||||
<TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void writeTo(Writer writer, String translationPrefix) throws TEx, IllegalAccessException;
|
||||
default <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void writeTo(Writer writer, String translationPrefix) throws TEx, IllegalAccessException {
|
||||
try {
|
||||
serializeOneTo(getValue(), translationPrefix, writer);
|
||||
} catch (MalformedDataException e) {
|
||||
LibJf.LOGGER.error("Could not write " + getName(), e);
|
||||
}
|
||||
}
|
||||
|
||||
default <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> T deserializeOneFrom(Reader reader) throws TEx, MalformedDataException {
|
||||
return LibJf.MAPPER.getAdapter(getTypeToken()).deserialize(reader);
|
||||
|
|
|
@ -128,16 +128,6 @@ public class DslEntryInfo<T> implements EntryInfo<T> {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> void loadFromJson(Reader reader) throws TEx, IllegalAccessException {
|
||||
try {
|
||||
setValue(deserializeOneFrom(reader));
|
||||
} catch (MalformedDataException e) {
|
||||
LibJf.LOGGER.error("Could not read " + name, e);
|
||||
} catch (NothingSerializedException ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public <TEx extends Exception, Reader extends SerializeReader<TEx, Reader>> T deserializeOneFrom(Reader reader) throws TEx, MalformedDataException {
|
||||
var next = reader.peek();
|
||||
|
@ -183,15 +173,6 @@ public class DslEntryInfo<T> implements EntryInfo<T> {
|
|||
return (T) object;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <TEx extends Exception, Writer extends SerializeWriter<TEx, Writer>> void writeTo(Writer writer, String translationPrefix) throws TEx, IllegalAccessException {
|
||||
try {
|
||||
serializeOneTo(getValue(), translationPrefix, writer);
|
||||
} catch (MalformedDataException e) {
|
||||
LibJf.LOGGER.error("Could not write " + getName(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getWidth() {
|
||||
return width;
|
||||
|
|
Loading…
Reference in New Issue
Block a user