Class VarListBuilderWithSortAndApply<ORIGINAL,​TRANSFORMED>

  • Type Parameters:
    ORIGINAL - This is the original data-type that is to be inserted into the list, after a simple transformation has been applied. For class this class, the sort is applied before the transformation.

    Speaking from the perspective of FileNode and FileNode.RetTypeChoice the 'ORIGINAL' type is always computed to be 'FileNode'.
    TRANSFORMED - This is the data-type, after the transform has been applied. The list that's returned to the user will be a container / list whose contents have type 'TRANSFORMED'.

    In the case of FileNode, and FileNode.RetTypeChoice, the 'TRANSFORMED' type is usually java.lang.String - and the String contents are the Full-Path File-Name, or the File-Name, itself.

    public class VarListBuilderWithSortAndApply<ORIGINAL,​TRANSFORMED>
    extends java.lang.Object
    Implementation of the FileNode class 'RetTypeChoice'.

    Java HTML Library Helper for Torello.Java.FileNode

    Currently, the only application for the VarList User-Specified Variable Return Type Interface may be found in the FileNode helper-class 'RetTypeChoice'.
    This class will build an suite of implementations of the VarList interface. This version provides the ability to sort and then transform the input list-class.


    • Field Detail

      • VECTOR

        🡇    
        public final VarList<java.util.Vector<TRANSFORMED>,​ORIGINAL> VECTOR
        This VarList instance has a 'retrieve()' method that will return a Vector whose Vector-contents are of parametrized-type 'TRANSFORMED'. The Vector returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<Vector<TRANSFORMED>, ORIGINAL> VECTOR;
        
      • ARRAYLIST

        🡅  🡇    
        public final VarList<java.util.ArrayList<TRANSFORMED>,​ORIGINAL> ARRAYLIST
        This VarList instance has a 'retrieve()' method that will return an ArrayList whose ArrayList-contents are of parametrized-type 'TRANSFORMED'. The ArrayList returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<ArrayList<TRANSFORMED>, ORIGINAL> ARRAYLIST;
        
      • ITERATOR

        🡅  🡇    
        public final VarList<java.util.Iterator<TRANSFORMED>,​ORIGINAL> ITERATOR
        This VarList instance has a 'retrieve()' method that will return an Iterator whose Iterator-contents are of parametrized-type 'TRANSFORMED'. The Iterator returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<Iterator<TRANSFORMED>, ORIGINAL> ITERATOR;
        
      • ARRAY

        🡅  🡇    
        public final VarList<TRANSFORMED[],​ORIGINAL> ARRAY
        This VarList instance has a 'retrieve()' method that will return an array whose array-contents are of parametrized-type 'TRANSFORMED'. The array returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<TRANSFORMED[], ORIGINAL> ARRAY;
        
      • STREAM

        🡅  🡇    
        public final VarList<java.util.stream.Stream<TRANSFORMED>,​ORIGINAL> STREAM
        This VarList instance has a 'retrieve()' method that will return a Stream whose Stream-contents are of parametrized-type 'TRANSFORMED'. The Stream returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<Stream<TRANSFORMED>, ORIGINAL> STREAM;
        
      • STREAM_BUILDER

        🡅  🡇    
        public final VarList<java.util.stream.Stream.Builder<TRANSFORMED>,​ORIGINAL> STREAM_BUILDER
        Instances of Stream.Builder cannot be sorted. Only a built Stream may be sorted. Therefore this parameter shall always be null.
        Code:
        Exact Field Declaration Expression:
        public final VarList<Stream.Builder<TRANSFORMED>, ORIGINAL> STREAM_BUILDER = null;
        
      • LINKEDLIST

        🡅  🡇    
        public final VarList<java.util.LinkedList<TRANSFORMED>,​ORIGINAL> LINKEDLIST
        This VarList instance has a 'retrieve()' method that will return a LinkedList whose LinkedList-contents are of parametrized-type 'TRANSFORMED'. The LinkedList returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<LinkedList<TRANSFORMED>, ORIGINAL> LINKEDLIST;
        
      • STACK

        🡅  🡇    
        public final VarList<java.util.Stack<TRANSFORMED>,​ORIGINAL> STACK
        This VarList instance has a 'retrieve()' method that will return a Stack whose Stack-contents are of parametrized-type 'TRANSFORMED'. The Stack returned will have already been sorted upon return.
        Code:
        Exact Field Declaration Expression:
        public final VarList<Stack<TRANSFORMED>, ORIGINAL> STACK;
        
    • Constructor Detail

      • VarListBuilderWithSortAndApply

        🡅    
        public VarListBuilderWithSortAndApply​
                    (java.util.Comparator<ORIGINAL> comparator,
                     java.util.function.Function<ORIGINAL,​TRANSFORMED> transformer,
                     java.lang.Class<TRANSFORMED> outputClass)
        
        Builds all 8 of the VarList's provided by this builder class.
        Parameters:
        comparator - This is used to sort the returned list.

        NOTICE: The 'comparator' is of parametrized-type 'ORIGINAL'. This is because the sort shall occur BEFORE the transform.
        transformer - This transform is used to convert the contents of the returned list-type. As noticed by its type, 'Function<ORIGINAL, TRANSFORMED>', the final type of the returned VarList will of type 'TRANSFORMED', although while building this 'VarList', the elements that shall be inserted will be of type 'ORIGINAL'.

        It is the job of the transformer parameter to convert the elements from type 'ORIGINAL' to type 'TRANSFORMED'
        outputClass - The final list that is built will be of type class U. Because java generics use "Type Erasure," this class must be obtained here. It is used for array generation or array-construction.