Class VavrCollectorFactory

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private io.vavr.collection.Map<java.lang.Class<?>,​java.util.stream.Collector<?,​?,​?>> collectors  
      private io.vavr.collection.Map<java.lang.Class<?>,​java.lang.Class<?>> defaultImplementations  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accepts​(java.lang.reflect.Type containerType)
      Accept a Type as a collector.
      java.util.stream.Collector<?,​?,​?> build​(java.lang.reflect.Type containerType)
      Creates a collector for a given container type.
      java.util.Optional<java.lang.reflect.Type> elementType​(java.lang.reflect.Type containerType)
      Returns the element type for a given container type.
      private java.lang.Class<?> getCollectionType​(java.lang.reflect.Type containerType)  
      private boolean hasDefaultImplementationWithCollector​(java.lang.Class<?> erasedType)  
      private io.vavr.control.Option<java.util.stream.Collector<?,​?,​?>> resolveDefaultCollector​(java.lang.Class<?> erasedType)  
      private static java.lang.reflect.Type resolveMaplikeEntryType​(java.lang.reflect.Type maplikeType, java.lang.Class<?> maplikeClass)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • defaultImplementations

        private final io.vavr.collection.Map<java.lang.Class<?>,​java.lang.Class<?>> defaultImplementations
      • collectors

        private final io.vavr.collection.Map<java.lang.Class<?>,​java.util.stream.Collector<?,​?,​?>> collectors
    • Constructor Detail

      • VavrCollectorFactory

        VavrCollectorFactory()
    • Method Detail

      • accepts

        public boolean accepts​(java.lang.reflect.Type containerType)
        Description copied from interface: CollectorFactory
        Accept a Type as a collector.
        Specified by:
        accepts in interface CollectorFactory
        Parameters:
        containerType - the container type.
        Returns:
        whether this factory can produce a collector for the given container type.
      • getCollectionType

        private java.lang.Class<?> getCollectionType​(java.lang.reflect.Type containerType)
      • hasDefaultImplementationWithCollector

        private boolean hasDefaultImplementationWithCollector​(java.lang.Class<?> erasedType)
      • resolveDefaultCollector

        private io.vavr.control.Option<java.util.stream.Collector<?,​?,​?>> resolveDefaultCollector​(java.lang.Class<?> erasedType)
      • elementType

        public java.util.Optional<java.lang.reflect.Type> elementType​(java.lang.reflect.Type containerType)
        Description copied from interface: CollectorFactory
        Returns the element type for a given container type.
        Specified by:
        elementType in interface CollectorFactory
        Parameters:
        containerType - the container type.
        Returns:
        the container element type if it can be discovered through reflection; empty otherwise.
        See Also:
        StatementContext.findElementTypeFor(Type)
      • resolveMaplikeEntryType

        private static java.lang.reflect.Type resolveMaplikeEntryType​(java.lang.reflect.Type maplikeType,
                                                                      java.lang.Class<?> maplikeClass)