package uk.co.acuminous.julez.mapper;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import uk.co.acuminous.julez.transformer.StringTransformer;
public class TransformingMapper implements TwoWayMapper {
private LiteralMapper literalMapper;
public TransformingMapper(StringTransformer keyTransformer, String... keys) {
this(keyTransformer, Arrays.asList(keys));
}
public TransformingMapper(StringTransformer keyTransformer, Collection<String> keys) {
Map<String, String> map = new LinkedHashMap<String, String>();
for (String key : keys) {
map.put(key, keyTransformer.transform(key));
}
this.literalMapper = new LiteralMapper(map);
}
@Override
public String getKey(String value) {
return literalMapper.getKey(value);
}
@Override
public String getValue(String key) {
return literalMapper.getValue(key);
}
@Override
public Collection<String> getKeys() {
return literalMapper.getKeys();
}
@Override
public Collection<String> getValues() {
return literalMapper.getValues();
}
}