
net.sf.javagimmicks.collections.transformer.KeyTransformingMap Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of GimmickUtils Show documentation
Show all versions of GimmickUtils Show documentation
Utility classes, APIs and tools for Java
The newest version!
package net.sf.javagimmicks.collections.transformer;
import java.util.AbstractMap;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
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