DataSet.java 992 B

123456789101112131415161718192021222324252627282930313233343536
  1. package me.lortseam.completeconfig.data;
  2. import lombok.AccessLevel;
  3. import lombok.RequiredArgsConstructor;
  4. import me.lortseam.completeconfig.data.structure.DataPart;
  5. import me.lortseam.completeconfig.data.structure.Identifiable;
  6. import me.lortseam.completeconfig.data.text.TranslationIdentifier;
  7. import org.jetbrains.annotations.NotNull;
  8. import java.util.AbstractSet;
  9. import java.util.Iterator;
  10. import java.util.LinkedHashMap;
  11. import java.util.Map;
  12. @RequiredArgsConstructor(access = AccessLevel.PROTECTED)
  13. public abstract class DataSet<T extends DataPart & Identifiable> extends AbstractSet<T> {
  14. private final Map<String, T> map = new LinkedHashMap<>();
  15. protected final TranslationIdentifier translation;
  16. @Override
  17. public @NotNull Iterator<T> iterator() {
  18. return map.values().iterator();
  19. }
  20. @Override
  21. public int size() {
  22. return map.size();
  23. }
  24. @Override
  25. public boolean add(T t) {
  26. return map.put(t.getID(), t) != t;
  27. }
  28. }