![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.javagimmicks.collections.transformer.KeyTransformingMap Maven / Gradle / Ivy
package net.sf.javagimmicks.collections.transformer;
import java.util.AbstractMap;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import net.sf.javagimmicks.transform.Transformer;
import net.sf.javagimmicks.transform.Transforming;
class KeyTransformingMap
extends AbstractMap
implements Transforming
{
protected final Map _internalMap;
protected final Transformer _transformer;
/**
* @deprecated Use TranformerUtils.decorateKeyBased() instead
*/
@Deprecated
public KeyTransformingMap(Map map, Transformer transformer)
{
_internalMap = map;
_transformer = transformer;
}
public Transformer getTransformer()
{
return _transformer;
}
@Override
public void clear()
{
_internalMap.clear();
}
@Override
public boolean containsValue(Object value)
{
return _internalMap.containsValue(value);
}
@Override
public Set> entrySet()
{
return TransformerUtils.decorate(
_internalMap.entrySet(),
new KeyTransformingEntryTransformer(getTransformer()));
}
@Override
public boolean isEmpty()
{
return _internalMap.isEmpty();
}
@Override
public Set keySet()
{
return TransformerUtils.decorate(
_internalMap.keySet(),
getTransformer());
}
@Override
public int size()
{
return _internalMap.size();
}
@Override
public Collection values()
{
return _internalMap.values();
}
protected KT transform(KF element)
{
return getTransformer().transform(element);
}
protected static class KeyTransformingEntry
implements Entry, Transforming
{
protected final Entry _internalEntry;
protected final Transformer _transformer;
public KeyTransformingEntry(Entry entry, Transformer transformer)
{
_internalEntry = entry;
_transformer = transformer;
}
public Transformer getTransformer()
{
return _transformer;
}
public KT getKey()
{
return _transformer.transform(_internalEntry.getKey());
}
public V getValue()
{
return _internalEntry.getValue();
}
public V setValue(V value)
{
return _internalEntry.setValue(value);
}
}
protected static class KeyTransformingEntryTransformer
implements Transformer, Entry>
{
protected final Transformer _transformer;
public KeyTransformingEntryTransformer(Transformer transformer)
{
_transformer = transformer;
}
public Entry transform(Entry source)
{
return new KeyTransformingEntry(source, _transformer);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy