[weaver-pojo-serde-extension] Implement auto serde for POJO weaving

This commit is contained in:
2025-06-28 23:30:14 +02:00
parent 4fc8cb4ac7
commit 25faea92d8
19 changed files with 909 additions and 128 deletions

View File

@@ -1,6 +1,7 @@
package de.siphalor.tweed5.weaver.pojo.api.annotation;
import de.siphalor.tweed5.annotationinheritance.api.AnnotationInheritance;
import de.siphalor.tweed5.weaver.pojo.api.weaving.CollectionPojoWeaver;
import de.siphalor.tweed5.weaver.pojo.api.weaving.CompoundPojoWeaver;
import de.siphalor.tweed5.weaver.pojo.api.weaving.TrivialPojoWeaver;
@@ -11,6 +12,7 @@ import java.lang.annotation.Target;
@AnnotationInheritance(passOn = PojoWeavingExtension.class)
@PojoWeavingExtension(CompoundPojoWeaver.class)
@PojoWeavingExtension(CollectionPojoWeaver.class)
@PojoWeavingExtension(TrivialPojoWeaver.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})

View File

@@ -28,7 +28,8 @@ class TweedPojoWeaverBootstrapperTest {
.hasEntrySatisfying("primitiveInteger", isSimpleEntryForClass(int.class))
.hasEntrySatisfying("boxedDouble", isSimpleEntryForClass(Double.class))
.hasEntrySatisfying("value", isSimpleEntryForClass(InnerValue.class))
.hasEntrySatisfying("list", isSimpleEntryForClass(List.class))
.hasEntrySatisfying("list", isCollectionEntryForClass(List.class, list ->
assertThat(list.elementEntry()).satisfies(isSimpleEntryForClass(Integer.class))))
.hasEntrySatisfying("compound", isCompoundEntryForClassWith(InnerCompound.class, innerCompound ->
assertThat(innerCompound.subEntries())
.hasEntrySatisfying("string", isSimpleEntryForClass(String.class))