[*] Remove config entry sealing

This commit is contained in:
2025-06-10 00:46:03 +02:00
parent a6900e673a
commit 2096ae540c
28 changed files with 201 additions and 163 deletions

View File

@@ -28,8 +28,11 @@ import org.junit.jupiter.api.Test;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import static de.siphalor.tweed5.testutils.MapTestUtils.sequencedMap;
import static java.util.Map.entry;
import static org.junit.jupiter.api.Assertions.*;
@NullUnmarked
@@ -49,17 +52,23 @@ class CommentExtensionImplTest {
configContainer.registerExtensions(extraExtensions);
configContainer.finishExtensionSetup();
intEntry = new SimpleConfigEntryImpl<>(configContainer, Integer.class);
stringEntry = new SimpleConfigEntryImpl<>(configContainer, String.class);
noCommentEntry = new SimpleConfigEntryImpl<>(configContainer, Long.class);
//noinspection unchecked
rootEntry = new StaticMapCompoundConfigEntryImpl<>(((Class<Map<String, Object>>)(Class<?>) Map.class), LinkedHashMap::new);
rootEntry = new StaticMapCompoundConfigEntryImpl<>(
configContainer,
((Class<Map<String, Object>>)(Class<?>) Map.class),
LinkedHashMap::new,
sequencedMap(List.of(
entry("int", intEntry),
entry("string", stringEntry),
entry("noComment", noCommentEntry)
))
);
intEntry = new SimpleConfigEntryImpl<>(Integer.class);
rootEntry.addSubEntry("int", intEntry);
stringEntry = new SimpleConfigEntryImpl<>(String.class);
rootEntry.addSubEntry("string", stringEntry);
noCommentEntry = new SimpleConfigEntryImpl<>(Long.class);
rootEntry.addSubEntry("noComment", noCommentEntry);
configContainer.attachAndSealTree(rootEntry);
configContainer.attachTree(rootEntry);
//noinspection unchecked
RegisteredExtensionData<EntryExtensionsData, EntryComment> commentData = (RegisteredExtensionData<EntryExtensionsData, EntryComment>) configContainer.entryDataExtensions().get(EntryComment.class);

View File

@@ -20,11 +20,10 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.*;
import static de.siphalor.tweed5.testutils.MapTestUtils.sequencedMap;
import static java.util.Map.entry;
import static org.junit.jupiter.api.Assertions.*;
class ValidationExtensionImplTest {
@@ -42,17 +41,24 @@ class ValidationExtensionImplTest {
configContainer.registerExtension(ValidationExtension.DEFAULT);
configContainer.finishExtensionSetup();
byteEntry = new SimpleConfigEntryImpl<>(configContainer, Byte.class);
intEntry = new SimpleConfigEntryImpl<>(configContainer, Integer.class);
doubleEntry = new SimpleConfigEntryImpl<>(configContainer, Double.class);
//noinspection unchecked
rootEntry = new StaticMapCompoundConfigEntryImpl<>(((Class<Map<String, Object>>) (Class<?>) Map.class), LinkedHashMap::new);
rootEntry = new StaticMapCompoundConfigEntryImpl<>(
configContainer,
((Class<Map<String, Object>>) (Class<?>) Map.class),
LinkedHashMap::new,
sequencedMap(List.of(
entry("byte", byteEntry),
entry("int", intEntry),
entry("double", doubleEntry)
))
);
byteEntry = new SimpleConfigEntryImpl<>(Byte.class);
rootEntry.addSubEntry("byte", byteEntry);
intEntry = new SimpleConfigEntryImpl<>(Integer.class);
rootEntry.addSubEntry("int", intEntry);
doubleEntry = new SimpleConfigEntryImpl<>(Double.class);
rootEntry.addSubEntry("double", doubleEntry);
configContainer.attachAndSealTree(rootEntry);
configContainer.attachTree(rootEntry);
//noinspection unchecked
RegisteredExtensionData<EntryExtensionsData, EntryComment> commentData = (RegisteredExtensionData<EntryExtensionsData, EntryComment>) configContainer.entryDataExtensions().get(EntryComment.class);

View File

@@ -55,9 +55,8 @@ class ValidationFallbackExtensionImplTest {
configContainer.finishExtensionSetup();
intEntry = new SimpleConfigEntryImpl<>(Integer.class);
configContainer.attachAndSealTree(intEntry);
intEntry = new SimpleConfigEntryImpl<>(configContainer, Integer.class);
configContainer.attachTree(intEntry);
RegisteredExtensionData<EntryExtensionsData, EntrySpecificValidation> entrySpecificValidation = (RegisteredExtensionData<EntryExtensionsData, EntrySpecificValidation>) configContainer.entryDataExtensions().get(EntrySpecificValidation.class);
entrySpecificValidation.set(intEntry.extensionsData(), () -> Arrays.asList(