package io.gitlab.jfronny.translater; import java.util.Collection; import java.util.Map; import java.util.Set; public class TransformingMap implements Map { private final Map backer; private final StringTransformer transformer; public TransformingMap(Map m, StringTransformer t) { backer = m; transformer = t; Collection strings = m.values(); int i = 0; for (String value : strings) { if (ModInit.cfg.verboseLogging) { i++; ModInit.Log("Transforming " + i + "/" + strings.size()); } transformer.transform(value); } } @Override public int size() { return backer.size(); } @Override public boolean isEmpty() { return backer.isEmpty(); } @Override public boolean containsKey(Object o) { return backer.containsKey(o); } @Override public boolean containsValue(Object o) { return backer.containsValue(o); } @Override public String get(Object o) { return transformer.transform(backer.get(o)); } @Override public String put(String s, String s2) { transformer.transform(s2); return backer.put(s, s2); } @Override public String remove(Object o) { return backer.remove(o); } @Override public void putAll(Map map) { for (String value : map.values()) { transformer.transform(value); } backer.putAll(map); } @Override public void clear() { backer.clear(); } @Override public Set keySet() { return backer.keySet(); } @Override public Collection values() { return backer.values(); } @Override public Set> entrySet() { return backer.entrySet(); } }