Class Resolver.Stack

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<M>, java.util.Collection<M>, java.util.Deque<M>, java.util.List<M>, java.util.Queue<M>
    Enclosing class:
    Resolver<M extends Match>

    private class Resolver.Stack
    extends java.util.LinkedList<M>
    This is used to store the Match implementations in resolution order. Resolving the match objects is performed so that the last inserted match object is the first used in the resolution process. This gives priority to the last inserted.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  Resolver.Stack.Sequence
      The is used to order the Match objects in the insertion order.
    • Field Summary

      • Fields inherited from class java.util.AbstractList

        modCount
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Stack()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void purge​(int index)
      The purge method is used to purge a match from the provided position.
      void push​(M match)
      The push method is used to push the match to the top of the stack.
      java.util.Iterator<M> sequence()
      This is returned from the Resolver.iterator so that matches can be iterated in insertion order.
      • Methods inherited from class java.util.LinkedList

        add, add, addAll, addAll, addFirst, addLast, clear, clone, contains, descendingIterator, element, get, getFirst, getLast, indexOf, lastIndexOf, listIterator, offer, offerFirst, offerLast, peek, peekFirst, peekLast, poll, pollFirst, pollLast, pop, remove, remove, remove, removeFirst, removeFirstOccurrence, removeLast, removeLastOccurrence, set, size, spliterator, toArray, toArray
      • Methods inherited from class java.util.AbstractSequentialList

        iterator
      • Methods inherited from class java.util.AbstractList

        equals, hashCode, listIterator, removeRange, subList
      • Methods inherited from class java.util.AbstractCollection

        containsAll, isEmpty, removeAll, retainAll, toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.util.Deque

        iterator
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.List

        containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, replaceAll, retainAll, sort, subList
    • Constructor Detail

      • Stack

        private Stack()
    • Method Detail

      • push

        public void push​(M match)
        The push method is used to push the match to the top of the stack. This also ensures that the cache is cleared so the semantics of the resolver are not affected.
        Specified by:
        push in interface java.util.Deque<M extends Match>
        Overrides:
        push in class java.util.LinkedList<M extends Match>
        Parameters:
        match - this is the match to be inserted to the stack
      • purge

        public void purge​(int index)
        The purge method is used to purge a match from the provided position. This also ensures that the cache is cleared so that the semantics of the resolver do not change.
        Parameters:
        index - the index of the match that is to be removed
      • sequence

        public java.util.Iterator<M> sequence()
        This is returned from the Resolver.iterator so that matches can be iterated in insertion order. When a match is removed from this iterator then it clears the cache and removed the match from the Stack object.
        Returns:
        returns an iterator to iterate in insertion order