瀏覽代碼

Expose Identifiable

Lortseam 4 年之前
父節點
當前提交
9f80a23348

+ 1 - 1
lib/src/main/java/me/lortseam/completeconfig/data/BaseCollection.java

@@ -17,7 +17,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.stream.Collectors;
 
-abstract class BaseCollection implements ParentDataPart<DataPart> {
+abstract class BaseCollection implements ParentDataPart {
 
     protected final TranslationIdentifier translation;
     private final EntrySet entries;

+ 2 - 1
lib/src/main/java/me/lortseam/completeconfig/data/Collection.java

@@ -2,6 +2,7 @@ package me.lortseam.completeconfig.data;
 
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
+import me.lortseam.completeconfig.data.structure.Identifiable;
 import me.lortseam.completeconfig.data.text.TranslationIdentifier;
 import net.minecraft.text.Text;
 import org.apache.commons.lang3.ArrayUtils;
@@ -12,7 +13,7 @@ import java.util.Arrays;
 import java.util.Optional;
 
 @Log4j2
-public class Collection extends BaseCollection {
+public class Collection extends BaseCollection implements Identifiable {
 
     private final String id;
     private final TranslationIdentifier[] customTooltipTranslation;

+ 0 - 5
lib/src/main/java/me/lortseam/completeconfig/data/Config.java

@@ -48,11 +48,6 @@ public final class Config extends BaseCollection {
         resolve(children);
     }
 
-    @Override
-    public String getID() {
-        throw new UnsupportedOperationException("Config root has no ID");
-    }
-
     public ModMetadata getMod() {
         return FabricLoader.getInstance().getModContainer(source.getModID()).get().getMetadata();
     }

+ 2 - 1
lib/src/main/java/me/lortseam/completeconfig/data/Entry.java

@@ -11,6 +11,7 @@ import me.lortseam.completeconfig.data.entry.EntryOrigin;
 import me.lortseam.completeconfig.data.entry.Transformation;
 import me.lortseam.completeconfig.data.entry.Transformer;
 import me.lortseam.completeconfig.data.structure.DataPart;
+import me.lortseam.completeconfig.data.structure.Identifiable;
 import me.lortseam.completeconfig.data.text.TranslationIdentifier;
 import me.lortseam.completeconfig.exception.IllegalAnnotationParameterException;
 import me.lortseam.completeconfig.extensions.CompleteConfigExtension;
@@ -31,7 +32,7 @@ import java.util.Optional;
 import java.util.function.UnaryOperator;
 
 @Log4j2
-public class Entry<T> implements DataPart {
+public class Entry<T> implements DataPart, Identifiable {
 
     private static final Transformer DEFAULT_TRANSFORMER = Entry::new;
     private static final List<Transformation> transformations = Lists.newArrayList(

+ 0 - 2
lib/src/main/java/me/lortseam/completeconfig/data/structure/DataPart.java

@@ -4,8 +4,6 @@ import org.spongepowered.configurate.CommentedConfigurationNode;
 
 public interface DataPart {
 
-    String getID();
-
     void apply(CommentedConfigurationNode node);
 
     void fetch(CommentedConfigurationNode node);

+ 7 - 0
lib/src/main/java/me/lortseam/completeconfig/data/structure/Identifiable.java

@@ -0,0 +1,7 @@
+package me.lortseam.completeconfig.data.structure;
+
+public interface Identifiable {
+
+    String getID();
+
+}

+ 1 - 1
lib/src/main/java/me/lortseam/completeconfig/data/structure/ParentDataPart.java

@@ -5,7 +5,7 @@ import org.spongepowered.configurate.CommentedConfigurationNode;
 import java.util.function.BiConsumer;
 import java.util.function.Predicate;
 
-public interface ParentDataPart<C extends DataPart> extends DataPart {
+public interface ParentDataPart<C extends DataPart & Identifiable> extends DataPart {
 
     Iterable<C> getChildren();