Class BottomUpTransientNodeTransformer<SN extends Node,​DN extends Node>


  • public class BottomUpTransientNodeTransformer<SN extends Node,​DN extends Node>
    extends java.lang.Object
    Mapper that traverses a trie and converts each node (of SN) to a node of type DN.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.ListIterator<DN>[] dstIteratorStack  
      private DN dstRootNode  
      private static int MAX_DEPTH  
      private java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator  
      private java.util.function.BiFunction<SN,​java.util.concurrent.atomic.AtomicReference<java.lang.Thread>,​DN> nodeMapper  
      private java.util.ListIterator<SN>[] srcIteratorStack  
      private int stackIndex  
    • Constructor Summary

      Constructors 
      Constructor Description
      BottomUpTransientNodeTransformer​(SN srcRootNode, java.util.function.BiFunction<SN,​java.util.concurrent.atomic.AtomicReference<java.lang.Thread>,​DN> nodeMapper)  
    • Field Detail

      • nodeMapper

        private final java.util.function.BiFunction<SN extends Node,​java.util.concurrent.atomic.AtomicReference<java.lang.Thread>,​DN extends Node> nodeMapper
      • mutator

        private final java.util.concurrent.atomic.AtomicReference<java.lang.Thread> mutator
      • dstRootNode

        private final DN extends Node dstRootNode
      • stackIndex

        private int stackIndex
      • srcIteratorStack

        private final java.util.ListIterator<SN extends Node>[] srcIteratorStack
      • dstIteratorStack

        private final java.util.ListIterator<DN extends Node>[] dstIteratorStack
    • Constructor Detail

      • BottomUpTransientNodeTransformer

        public BottomUpTransientNodeTransformer​(SN srcRootNode,
                                                java.util.function.BiFunction<SN,​java.util.concurrent.atomic.AtomicReference<java.lang.Thread>,​DN> nodeMapper)
    • Method Detail

      • apply

        public final DN apply()
      • isStackEmpty

        private final boolean isStackEmpty()
      • pushOnStack

        private final void pushOnStack​(java.util.ListIterator<SN> srcNode,
                                       java.util.ListIterator<DN> dstNode)
      • dropFromStack

        private final void dropFromStack()
      • processStack

        private final void processStack()