Translater/src/main/java/io/gitlab/jfronny/translater/TransformingMap.java

83 lines
1.7 KiB
Java

package io.gitlab.jfronny.translater;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
public class TransformingMap implements Map<String, String> {
private final Map<String, String> backer;
private final StringTransformer transformer;
public TransformingMap(Map<String, String> m, StringTransformer t) {
backer = m;
transformer = t;
for (String value : m.values()) {
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<? extends String, ? extends String> map) {
for (String value : map.values()) {
transformer.transform(value);
}
backer.putAll(map);
}
@Override
public void clear() {
backer.clear();
}
@Override
public Set<String> keySet() {
return backer.keySet();
}
@Override
public Collection<String> values() {
return backer.values();
}
@Override
public Set<Entry<String, String>> entrySet() {
return backer.entrySet();
}
}