diff --git a/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/api/v2/EntryInfo.java b/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/api/v2/EntryInfo.java index bdd6ba2..a53ba92 100644 --- a/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/api/v2/EntryInfo.java +++ b/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/api/v2/EntryInfo.java @@ -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 { * Set this entry's value to that of the element * @param reader The reader to read from */ - > void loadFromJson(Reader reader) throws TEx, IllegalAccessException; + default > 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 */ - > void writeTo(Writer writer, String translationPrefix) throws TEx, IllegalAccessException; + default > 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 > T deserializeOneFrom(Reader reader) throws TEx, MalformedDataException { return LibJf.MAPPER.getAdapter(getTypeToken()).deserialize(reader); diff --git a/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DslEntryInfo.java b/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DslEntryInfo.java index f024b35..abc6542 100644 --- a/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DslEntryInfo.java +++ b/libjf-config-core-v2/src/main/java/io/gitlab/jfronny/libjf/config/impl/dsl/DslEntryInfo.java @@ -128,16 +128,6 @@ public class DslEntryInfo implements EntryInfo { } } - @Override - public > 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 > T deserializeOneFrom(Reader reader) throws TEx, MalformedDataException { var next = reader.peek(); @@ -183,15 +173,6 @@ public class DslEntryInfo implements EntryInfo { return (T) object; } - @Override - public > 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;