![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.javagimmicks.collections.transformer.TransformerUtils15 Maven / Gradle / Ivy
package net.sf.javagimmicks.collections.transformer;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import net.sf.javagimmicks.collections.Ring;
import net.sf.javagimmicks.collections.RingCursor;
/**
* This class is the central entry point to the Javagimmicks
* transformer API (Java 1.5 version) by providing decorator-
* and generator methods for many transforming types.
*
* A more detailed description of the API can be found
* at in the package description
* {@link net.sf.javagimmicks.collections.transformer}.
* @see net.sf.javagimmicks.collections.transformer
* @author Michael Scholz
*/
@SuppressWarnings("deprecation")
public class TransformerUtils15
{
protected TransformerUtils15() {}
public static Transformer identityTransformer()
{
return identityBidiTransformer();
}
public static BidiTransformer identityBidiTransformer()
{
return new BidiTransformer()
{
public E transform(E source)
{
return source;
}
public BidiTransformer invert()
{
return this;
}
public E transformBack(E source)
{
return source;
}
};
}
public static BidiTransformer invert(final BidiTransformer transformer)
{
return new BidiTransformer()
{
public T transformBack(F source)
{
return transformer.transform(source);
}
public F transform(T source)
{
return transformer.transformBack(source);
}
public BidiTransformer invert()
{
return transformer;
}
};
}
public static boolean isTransforming(Object o)
{
return o instanceof Transforming, ?>;
}
public static boolean isBidiTransforming(Object o)
{
return o instanceof BidiTransforming, ?>;
}
public static Transformer, ?> getTransformer(Object transforming)
{
if(!isTransforming(transforming))
{
throw new IllegalArgumentException("Object is not transforming!");
}
return ((Transforming, ?>)transforming).getTransformer();
}
public static BidiTransformer, ?> getBidiTransformer(Object transforming)
{
if(!isBidiTransforming(transforming))
{
throw new IllegalArgumentException("Object is not bidi-transforming!");
}
return ((BidiTransforming, ?>)transforming).getBidiTransformer();
}
public static Comparator super T> decorate(Comparator super F> comparator, Transformer transformer)
{
return new TransformingComparator(comparator, transformer);
}
public static Iterator decorate(Iterator iterator, Transformer transformer)
{
return new TransformingIterator(iterator, transformer);
}
public static ListIterator decorate(ListIterator iterator, Transformer transformer)
{
return new TransformingListIterator(iterator, transformer);
}
public static ListIterator decorate(ListIterator iterator, BidiTransformer transformer)
{
return new BidiTransformingListIterator(iterator, transformer);
}
public static Collection decorate(Collection collection, Transformer transformer)
{
return new TransformingCollection(collection, transformer);
}
public static Collection decorate(Collection collection, BidiTransformer transformer)
{
return new BidiTransformingCollection(collection, transformer);
}
public static Set decorate(Set set, Transformer transformer)
{
return new TransformingSet(set, transformer);
}
public static Set decorate(Set set, BidiTransformer transformer)
{
return new BidiTransformingSet(set, transformer);
}
public static SortedSet decorate(SortedSet set, Transformer transformer)
{
return new TransformingSortedSet(set, transformer);
}
public static SortedSet decorate(SortedSet set, BidiTransformer transformer)
{
return new BidiTransformingSortedSet(set, transformer);
}
public static List decorate(List list, Transformer transformer)
{
return new TransformingList(list, transformer);
}
public static List decorate(List list, BidiTransformer transformer)
{
return new BidiTransformingList(list, transformer);
}
public static Map decorateKeyBased(Map map, Transformer keyTransformer)
{
return new KeyTransformingMap(map, keyTransformer);
}
public static Map decorateKeyBased(Map map, BidiTransformer keyTransformer)
{
return new KeyBidiTransformingMap(map, keyTransformer);
}
public static SortedMap decorateKeyBased(SortedMap map, Transformer keyTransformer)
{
return new KeyTransformingSortedMap(map, keyTransformer);
}
public static SortedMap decorateKeyBased(SortedMap map, BidiTransformer keyTransformer)
{
return new KeyBidiTransformingSortedMap(map, keyTransformer);
}
public static Map decorateValueBased(Map map, Transformer valueTransformer)
{
return new ValueTransformingMap(map, valueTransformer);
}
public static Map decorateValueBased(Map map, BidiTransformer valueTransformer)
{
return new ValueBidiTransformingMap(map, valueTransformer);
}
public static SortedMap decorateValueBased(SortedMap map, Transformer valueTransformer)
{
return new ValueTransformingSortedMap(map, valueTransformer);
}
public static SortedMap decorateValueBased(SortedMap map, BidiTransformer valueTransformer)
{
return new ValueBidiTransformingSortedMap(map, valueTransformer);
}
public static Map decorate(Map map, Transformer keyTransformer, Transformer valueTransformer)
{
Map valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static Map decorate(Map map, BidiTransformer keyTransformer, Transformer valueTransformer)
{
Map valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static Map decorate(Map map, Transformer keyTransformer, BidiTransformer valueTransformer)
{
Map valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static Map decorate(Map map, BidiTransformer keyTransformer, BidiTransformer valueTransformer)
{
Map valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static SortedMap decorate(SortedMap map, Transformer keyTransformer, Transformer valueTransformer)
{
SortedMap valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static SortedMap decorate(SortedMap map, BidiTransformer keyTransformer, Transformer valueTransformer)
{
SortedMap valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static SortedMap decorate(SortedMap map, Transformer keyTransformer, BidiTransformer valueTransformer)
{
SortedMap valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static SortedMap decorate(SortedMap map, BidiTransformer keyTransformer, BidiTransformer valueTransformer)
{
SortedMap valueTransformingMap = decorateValueBased(map, valueTransformer);
return decorateKeyBased(valueTransformingMap, keyTransformer);
}
public static RingCursor decorate(RingCursor ringCursor, Transformer transformer)
{
return new TransformingRingCursor(ringCursor, transformer);
}
public static RingCursor decorate(RingCursor ringCursor, BidiTransformer transformer)
{
return new BidiTransformingRingCursor(ringCursor, transformer);
}
public static Ring decorate(Ring ring, Transformer transformer)
{
return new TransformingRing(ring, transformer);
}
public static Ring decorate(Ring ring, BidiTransformer transformer)
{
return new BidiTransformingRing(ring, transformer);
}
}