All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 decorate(Comparator 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); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy