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

cyclops.VavrConverters Maven / Gradle / Ivy

package cyclops;

import com.aol.cyclops2.data.collections.extensions.CollectionX;
import com.aol.cyclops2.types.foldable.To;
import cyclops.collections.immutable.PersistentMapX;
import cyclops.collections.vavr.*;
import io.vavr.collection.*;

import java.util.Comparator;
import java.util.function.Function;

/**
 * Class for holding conversion methods between types
 * Use in conjunction with {@link To#to(Function)} for fluent conversions
 *
 * 
 *     {@code
 *      LinkedList list1 = ListX.of(1,2,3)
 *                                      .to(Converters::LinkedList);
        ArrayList list2 = ListX.of(1,2,3)
                                       .to(Converters::ArrayList);
 *     }
 *
 * 
*/ public interface VavrConverters { public static HashMap HashMap(PersistentMapX vec){ return vec.unwrapNested(HashMap.class, ()->{ VavrHashMapX map = VavrHashMapX.copyFromMap(vec).unwrap(); return map.unwrap(); } ); } public static ,V> TreeMap TreeMap(PersistentMapX vec){ return vec.unwrapNested(TreeMap.class, ()->{ VavrTreeMapX map = VavrTreeMapX.copyFromMap(vec,(Comparator) Comparator.naturalOrder()).unwrap(); return map.unwrap(); } ); } public static TreeMap TreeMap(PersistentMapX vec, Comparator comp){ return vec.unwrapNested(TreeMap.class, ()->{ VavrTreeMapX map = VavrTreeMapX.copyFromMap(vec,comp).unwrap(); return map.unwrap(); } ); } public static > TreeSet TreeSet(CollectionX vec){ return vec.unwrapNested(TreeSet.class, ()->{ VavrTreeSetX set = VavrTreeSetX.copyFromCollection(vec,(Comparator)Comparator.naturalOrder()).unwrap(); return set.unwrap(); }); } public static HashSet HashSet(CollectionX vec){ return vec.unwrapNested(HashSet.class, ()-> { VavrHashSetX set = VavrHashSetX.copyFromCollection(vec).unwrap(); return set.unwrap(); }); } public static TreeSet TreeSet(CollectionX vec, Comparator comp) { return vec.unwrapNested(TreeSet.class, () -> { VavrTreeSetX set = VavrTreeSetX.copyFromCollection(vec, comp).unwrap(); return set.unwrap(); }); } public static BitSet BitSet(CollectionX vec){ return vec.unwrapNested(BitSet.class, ()->{ VavrBitSetX set = VavrBitSetX.copyFromCollection(vec).unwrap(); return set.unwrap(); } ); } public static Queue Queue(CollectionX vec){ return vec.unwrapNested(Queue.class, ()-> { VavrQueueX queue = VavrQueueX.copyFromCollection(vec).unwrap(); return queue.unwrap(); }); } public static List List(CollectionX vec){ return vec.unwrapNested(List.class, ()-> { VavrListX vector = VavrListX.copyFromCollection(vec).unwrap(); return vector.unwrap(); }); } public static Vector Vector(CollectionX vec){ return vec.unwrapNested(Vector.class, ()-> { VavrVectorX vector = VavrVectorX.copyFromCollection(vec).unwrap(); return vector.unwrap(); }); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy