83 lines
1.7 KiB
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();
|
|
}
|
|
}
|