diff --git a/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/api/AComment.java b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/api/AComment.java deleted file mode 100644 index d2be316..0000000 --- a/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/api/AComment.java +++ /dev/null @@ -1,12 +0,0 @@ -package de.siphalor.tweed5.defaultextensions.comment.api; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.FIELD) -public @interface AComment { - String value() default ""; -} diff --git a/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/api/EntryComment.java b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/api/EntryComment.java new file mode 100644 index 0000000..73bc53a --- /dev/null +++ b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/api/EntryComment.java @@ -0,0 +1,5 @@ +package de.siphalor.tweed5.defaultextensions.comment.api; + +public interface EntryComment { + String comment(); +} diff --git a/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImpl.java b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImpl.java index 455a253..7e18bb3 100644 --- a/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImpl.java +++ b/tweed5-default-extensions/src/main/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImpl.java @@ -10,10 +10,7 @@ import de.siphalor.tweed5.core.api.middleware.DefaultMiddlewareContainer; import de.siphalor.tweed5.core.api.middleware.Middleware; import de.siphalor.tweed5.data.extension.api.TweedEntryWriter; import de.siphalor.tweed5.data.extension.api.extension.ReadWriteRelatedExtension; -import de.siphalor.tweed5.defaultextensions.comment.api.AComment; -import de.siphalor.tweed5.defaultextensions.comment.api.CommentExtension; -import de.siphalor.tweed5.defaultextensions.comment.api.CommentProducer; -import de.siphalor.tweed5.defaultextensions.comment.api.CommentModifyingExtension; +import de.siphalor.tweed5.defaultextensions.comment.api.*; import lombok.Getter; import lombok.Value; import org.jetbrains.annotations.Nullable; @@ -32,7 +29,7 @@ public class CommentExtensionImpl implements ReadWriteRelatedExtension, CommentE @Override public void setup(TweedExtensionSetupContext context) { internalEntryDataExtension = context.registerEntryExtensionData(InternalCommentEntryData.class); - context.registerEntryExtensionData(AComment.class); + context.registerEntryExtensionData(EntryComment.class); middlewareContainer = new DefaultMiddlewareContainer<>(); @@ -54,8 +51,8 @@ public class CommentExtensionImpl implements ReadWriteRelatedExtension, CommentE public void initEntry(ConfigEntry configEntry) { EntryExtensionsData entryExtensionsData = configEntry.extensionsData(); String baseComment; - if (entryExtensionsData.isPatchworkPartSet(AComment.class)) { - baseComment = ((AComment) entryExtensionsData).value(); + if (entryExtensionsData.isPatchworkPartSet(EntryComment.class)) { + baseComment = ((EntryComment) entryExtensionsData).comment(); } else { baseComment = ""; } diff --git a/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImplTest.java b/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImplTest.java index 7fa7cbb..770381d 100644 --- a/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImplTest.java +++ b/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/comment/impl/CommentExtensionImplTest.java @@ -16,16 +16,15 @@ import de.siphalor.tweed5.data.extension.api.readwrite.TweedEntryReaderWriters; import de.siphalor.tweed5.data.extension.impl.ReadWriteExtensionImpl; import de.siphalor.tweed5.data.hjson.HjsonCommentType; import de.siphalor.tweed5.data.hjson.HjsonWriter; -import de.siphalor.tweed5.defaultextensions.comment.api.AComment; import de.siphalor.tweed5.defaultextensions.comment.api.CommentExtension; -import de.siphalor.tweed5.defaultextensions.comment.api.CommentProducer; import de.siphalor.tweed5.defaultextensions.comment.api.CommentModifyingExtension; +import de.siphalor.tweed5.defaultextensions.comment.api.CommentProducer; +import de.siphalor.tweed5.defaultextensions.comment.api.EntryComment; import lombok.RequiredArgsConstructor; import lombok.Value; import org.junit.jupiter.api.Test; import java.io.StringWriter; -import java.lang.annotation.Annotation; import java.util.*; import static org.junit.jupiter.api.Assertions.*; @@ -60,11 +59,11 @@ class CommentExtensionImplTest { configContainer.attachAndSealTree(rootEntry); //noinspection unchecked - RegisteredExtensionData commentData = (RegisteredExtensionData) configContainer.entryDataExtensions().get(AComment.class); + RegisteredExtensionData commentData = (RegisteredExtensionData) configContainer.entryDataExtensions().get(EntryComment.class); - commentData.set(rootEntry.extensionsData(), new ACommentImpl("This is the root value.\nIt is the topmost value in the tree.")); - commentData.set(intEntry.extensionsData(), new ACommentImpl("It is an integer")); - commentData.set(stringEntry.extensionsData(), new ACommentImpl("It is a string")); + commentData.set(rootEntry.extensionsData(), new CommentImpl("This is the root value.\nIt is the topmost value in the tree.")); + commentData.set(intEntry.extensionsData(), new CommentImpl("It is an integer")); + commentData.set(stringEntry.extensionsData(), new CommentImpl("It is a string")); } @Test @@ -123,13 +122,8 @@ class CommentExtensionImplTest { } @Value - private static class ACommentImpl implements AComment { - String value; - - @Override - public Class annotationType() { - return null; - } + private static class CommentImpl implements EntryComment { + String comment; } private static class TestCommentModifyingExtension implements TweedExtension, CommentModifyingExtension { diff --git a/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/validation/impl/ValidationExtensionImplTest.java b/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/validation/impl/ValidationExtensionImplTest.java index 4b18fca..e8dd1b6 100644 --- a/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/validation/impl/ValidationExtensionImplTest.java +++ b/tweed5-default-extensions/src/test/java/de/siphalor/tweed5/defaultextensions/validation/impl/ValidationExtensionImplTest.java @@ -3,14 +3,12 @@ package de.siphalor.tweed5.defaultextensions.validation.impl; import de.siphalor.tweed5.core.api.entry.ConfigEntry; import de.siphalor.tweed5.core.api.extension.EntryExtensionsData; import de.siphalor.tweed5.core.api.extension.RegisteredExtensionData; -import de.siphalor.tweed5.core.api.middleware.Middleware; import de.siphalor.tweed5.core.impl.DefaultConfigContainer; import de.siphalor.tweed5.core.impl.entry.SimpleConfigEntryImpl; import de.siphalor.tweed5.core.impl.entry.StaticMapCompoundConfigEntryImpl; -import de.siphalor.tweed5.defaultextensions.comment.api.AComment; import de.siphalor.tweed5.defaultextensions.comment.api.CommentExtension; +import de.siphalor.tweed5.defaultextensions.comment.api.EntryComment; import de.siphalor.tweed5.defaultextensions.comment.impl.CommentExtensionImpl; -import de.siphalor.tweed5.defaultextensions.validation.api.ConfigEntryValidator; import de.siphalor.tweed5.defaultextensions.validation.api.EntrySpecificValidation; import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension; import de.siphalor.tweed5.defaultextensions.validation.api.result.ValidationIssue; @@ -23,8 +21,10 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; -import java.lang.annotation.Annotation; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; import static org.junit.jupiter.api.Assertions.*; @@ -60,38 +60,22 @@ class ValidationExtensionImplTest { configContainer.attachAndSealTree(rootEntry); //noinspection unchecked - RegisteredExtensionData commentData = (RegisteredExtensionData) configContainer.entryDataExtensions().get(AComment.class); - commentData.set(intEntry.extensionsData(), new AComment() { - @Override - public Class annotationType() { - return null; - } - - @Override - public String value() { - return "This is the main comment!"; - } - }); + RegisteredExtensionData commentData = (RegisteredExtensionData) configContainer.entryDataExtensions().get(EntryComment.class); + commentData.set(intEntry.extensionsData(), () -> "This is the main comment!"); //noinspection unchecked RegisteredExtensionData entrySpecificValidation = (RegisteredExtensionData) configContainer.entryDataExtensions().get(EntrySpecificValidation.class); - entrySpecificValidation.set(byteEntry.extensionsData(), new EntrySpecificValidation() { - @Override - public Collection> validators() { - return Collections.singleton(new SimpleValidatorMiddleware("range", new NumberRangeValidator<>(Byte.class, (byte) 10, (byte) 100))); - } - }); - entrySpecificValidation.set(intEntry.extensionsData(), new EntrySpecificValidation() { - @Override - public Collection> validators() { - return Collections.singleton(new SimpleValidatorMiddleware("range", new NumberRangeValidator<>(Integer.class, null, 123))); - } - }); - entrySpecificValidation.set(doubleEntry.extensionsData(), new EntrySpecificValidation() { - @Override - public Collection> validators() { - return Collections.singleton(new SimpleValidatorMiddleware("range", new NumberRangeValidator<>(Double.class, 0.5, null))); - } - }); + entrySpecificValidation.set( + byteEntry.extensionsData(), + () -> Collections.singleton(new SimpleValidatorMiddleware("range", new NumberRangeValidator<>(Byte.class, (byte) 10, (byte) 100))) + ); + entrySpecificValidation.set( + intEntry.extensionsData(), + () -> Collections.singleton(new SimpleValidatorMiddleware("range", new NumberRangeValidator<>(Integer.class, null, 123))) + ); + entrySpecificValidation.set( + doubleEntry.extensionsData(), + () -> Collections.singleton(new SimpleValidatorMiddleware("range", new NumberRangeValidator<>(Double.class, 0.5, null))) + ); configContainer.initialize(); }