[weaver-pojo-serde-extension] Implement auto serde for POJO weaving
This commit is contained in:
@@ -96,6 +96,9 @@ public interface ReadWriteExtension extends TweedExtension {
|
||||
};
|
||||
}
|
||||
|
||||
<T, C extends ConfigEntry<T>> @Nullable TweedEntryReader<T, C> getDefinedEntryReader(ConfigEntry<T> entry);
|
||||
<T, C extends ConfigEntry<T>> @Nullable TweedEntryWriter<T, C> getDefinedEntryWriter(ConfigEntry<T> entry);
|
||||
|
||||
<T, C extends ConfigEntry<T>> void setEntryReaderWriter(
|
||||
ConfigEntry<T> entry,
|
||||
TweedEntryReader<T, C> entryReader,
|
||||
|
||||
@@ -18,7 +18,6 @@ import de.siphalor.tweed5.patchwork.api.PatchworkFactory;
|
||||
import de.siphalor.tweed5.patchwork.api.PatchworkPartAccess;
|
||||
import lombok.Data;
|
||||
import lombok.val;
|
||||
import org.jspecify.annotations.NonNull;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -78,6 +77,26 @@ public class ReadWriteExtensionImpl implements ReadWriteExtension {
|
||||
entryWriterMiddlewareContainer.seal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable <T, C extends ConfigEntry<T>> TweedEntryReader<T, C> getDefinedEntryReader(ConfigEntry<T> entry) {
|
||||
CustomEntryData customEntryData = entry.extensionsData().get(customEntryDataAccess);
|
||||
if (customEntryData == null) {
|
||||
return null;
|
||||
}
|
||||
//noinspection unchecked
|
||||
return (TweedEntryReader<T, C>) customEntryData.readerDefinition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable <T, C extends ConfigEntry<T>> TweedEntryWriter<T, C> getDefinedEntryWriter(ConfigEntry<T> entry) {
|
||||
CustomEntryData customEntryData = entry.extensionsData().get(customEntryDataAccess);
|
||||
if (customEntryData == null) {
|
||||
return null;
|
||||
}
|
||||
//noinspection unchecked
|
||||
return (TweedEntryWriter<T, C>) customEntryData.writerDefinition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T, C extends ConfigEntry<T>> void setEntryReaderWriter(
|
||||
ConfigEntry<T> entry,
|
||||
|
||||
Reference in New Issue
Block a user