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

net.sf.javagimmicks.collections.transformer.MappedTransformerUtils 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.NavigableMap;
import java.util.NavigableSet;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;

import net.sf.javagimmicks.collections.bidimap.BidiMap;

public class MappedTransformerUtils
{
   private MappedTransformerUtils() {}
   
   
   
   public static  Transformer asTransformer(final Map map)
   {
      return new MapTransformer(map);
   }
   
   public static  BidiTransformer asBidiTransformer(BidiMap bidiMap)
   {
      return new BidiMapBidiTransformer(bidiMap);
   }
   
   public static  Comparator map(Comparator comparator, Map map)
   {
      return TransformerUtils.decorate(comparator, asTransformer(map));
   }
   
   public static  Iterator map(Iterator base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }
   
   public static  Collection map(Collection base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }

   public static  Collection map(Collection base, BidiMap map)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(map));
   }
   
   public static  Set map(Set base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }

   public static  Set map(Set base, BidiMap map)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(map));
   }
   
   public static  SortedSet map(SortedSet base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }

   public static  SortedSet map(SortedSet base, BidiMap map)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(map));
   }
   
   public static  NavigableSet map(NavigableSet base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }

   public static  NavigableSet map(NavigableSet base, BidiMap map)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(map));
   }
   
   public static  ListIterator map(ListIterator base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }

   public static  ListIterator map(ListIterator base, BidiMap map)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(map));
   }
   
   public static  List map(List base, Map map)
   {
      return TransformerUtils.decorate(base, asTransformer(map));
   }

   public static  List map(List base, BidiMap map)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(map));
   }
   
   public static  Map mapKeyBased(Map base, Map map)
   {
      return TransformerUtils.decorateKeyBased(base, asTransformer(map));
   }
   
   public static  Map mapKeyBased(Map base, BidiMap map)
   {
      return TransformerUtils.decorateKeyBased(base, asBidiTransformer(map));
   }
   
   public static  Map mapValueBased(Map base, Map map)
   {
      return TransformerUtils.decorateValueBased(base, asTransformer(map));
   }
   
   public static  Map mapValueBased(Map base, BidiMap map)
   {
      return TransformerUtils.decorateValueBased(base, asBidiTransformer(map));
   }
   
   public static  Map map(Map base, Map keyMap, Map valueMap)
   {
      return TransformerUtils.decorate(base, asTransformer(keyMap), asTransformer(valueMap));
   }
   
   public static  Map map(Map base, BidiMap keyMap, Map valueMap)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(keyMap), asTransformer(valueMap));
   }
   
   public static  Map map(Map base, Map keyMap, BidiMap valueMap)
   {
      return TransformerUtils.decorate(base, asTransformer(keyMap), asBidiTransformer(valueMap));
   }
   
   public static  Map map(Map base, BidiMap keyMap, BidiMap valueMap)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(keyMap), asBidiTransformer(valueMap));
   }
   
   public static  SortedMap mapKeyBased(SortedMap base, Map map)
   {
      return TransformerUtils.decorateKeyBased(base, asTransformer(map));
   }
   
   public static  SortedMap mapKeyBased(SortedMap base, BidiMap map)
   {
      return TransformerUtils.decorateKeyBased(base, asBidiTransformer(map));
   }
   
   public static  SortedMap mapValueBased(SortedMap base, Map map)
   {
      return TransformerUtils.decorateValueBased(base, asTransformer(map));
   }
   
   public static  SortedMap mapValueBased(SortedMap base, BidiMap map)
   {
      return TransformerUtils.decorateValueBased(base, asBidiTransformer(map));
   }
   
   public static  SortedMap map(SortedMap base, Map keyMap, Map valueMap)
   {
      return TransformerUtils.decorate(base, asTransformer(keyMap), asTransformer(valueMap));
   }
   
   public static  SortedMap map(SortedMap base, BidiMap keyMap, Map valueMap)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(keyMap), asTransformer(valueMap));
   }
   
   public static  SortedMap map(SortedMap base, Map keyMap, BidiMap valueMap)
   {
      return TransformerUtils.decorate(base, asTransformer(keyMap), asBidiTransformer(valueMap));
   }
   
   public static  SortedMap map(SortedMap base, BidiMap keyMap, BidiMap valueMap)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(keyMap), asBidiTransformer(valueMap));
   }
   
   public static  NavigableMap mapKeyBased(NavigableMap base, Map map)
   {
      return TransformerUtils.decorateKeyBased(base, asTransformer(map));
   }
   
   public static  NavigableMap mapKeyBased(NavigableMap base, BidiMap map)
   {
      return TransformerUtils.decorateKeyBased(base, asBidiTransformer(map));
   }
   
   public static  NavigableMap mapValueBased(NavigableMap base, Map map)
   {
      return TransformerUtils.decorateValueBased(base, asTransformer(map));
   }
   
   public static  NavigableMap mapValueBased(NavigableMap base, BidiMap map)
   {
      return TransformerUtils.decorateValueBased(base, asBidiTransformer(map));
   }
   
   public static  NavigableMap map(NavigableMap base, Map keyMap, Map valueMap)
   {
      return TransformerUtils.decorate(base, asTransformer(keyMap), asTransformer(valueMap));
   }
   
   public static  NavigableMap map(NavigableMap base, BidiMap keyMap, Map valueMap)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(keyMap), asTransformer(valueMap));
   }
   
   public static  NavigableMap map(NavigableMap base, Map keyMap, BidiMap valueMap)
   {
      return TransformerUtils.decorate(base, asTransformer(keyMap), asBidiTransformer(valueMap));
   }
   
   public static  NavigableMap map(NavigableMap base, BidiMap keyMap, BidiMap valueMap)
   {
      return TransformerUtils.decorate(base, asBidiTransformer(keyMap), asBidiTransformer(valueMap));
   }
   
   protected static class MapTransformer implements Transformer
   {
      protected final Map _baseMap;

      protected MapTransformer(Map map)
      {
         _baseMap = map;
      }

      public T transform(F source)
      {
         return _baseMap.get(source);
      }
   }
   
   protected static class BidiMapBidiTransformer extends MapTransformer implements BidiTransformer
   {
      protected BidiMapBidiTransformer(BidiMap map)
      {
         super(map);
      }

      public BidiTransformer invert()
      {
         return TransformerUtils.invert(this);
      }

      public F transformBack(T source)
      {
         return ((BidiMap)_baseMap).inverseBidiMap().get(source);
      }
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy