package me.lortseam.completeconfig.data; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import me.lortseam.completeconfig.data.structure.DataPart; import me.lortseam.completeconfig.data.structure.Identifiable; import me.lortseam.completeconfig.data.text.TranslationIdentifier; import org.jetbrains.annotations.NotNull; import java.util.AbstractSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; @RequiredArgsConstructor(access = AccessLevel.PROTECTED) abstract class DataSet extends AbstractSet { private final Map map = new LinkedHashMap<>(); protected final TranslationIdentifier translation; @Override public @NotNull Iterator iterator() { return map.values().iterator(); } @Override public int size() { return map.size(); } @Override public boolean add(T t) { return map.put(t.getID(), t) != t; } }