Class CollisionCheckStack<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
com.sun.xml.bind.v2.util.CollisionCheckStack<E>
All Implemented Interfaces:
Iterable<E>, Collection<E>, List<E>, SequencedCollection<E>

public final class CollisionCheckStack<E> extends AbstractList<E>
Stack-like data structure that allows the following efficient operations:
  1. Push/pop operation.
  2. Duplicate check. When an object that's already in the stack is pushed, this class will tell you so.

Object equality is their identity equality.

This class implements List for accessing items in the stack, but List methods that alter the stack is not supported.

Author:
Kohsuke Kawaguchi
  • Constructor Details

    • CollisionCheckStack

      public CollisionCheckStack()
  • Method Details

    • setUseIdentity

      public void setUseIdentity(boolean useIdentity)
      Set to false to use Object.equals(Object) to detect cycles. This method can be only used when the stack is empty.
    • getUseIdentity

      public boolean getUseIdentity()
    • getLatestPushResult

      public boolean getLatestPushResult()
    • push

      public boolean push(E o)
      Pushes a new object to the stack.
      Returns:
      true if this object has already been pushed
    • pushNocheck

      public void pushNocheck(E o)
      Pushes a new object to the stack without making it participate with the collision check.
    • findDuplicate

      public boolean findDuplicate(E o)
    • get

      public E get(int index)
      Specified by:
      get in interface List<E>
      Specified by:
      get in class AbstractList<E>
    • size

      public int size()
      Specified by:
      size in interface Collection<E>
      Specified by:
      size in interface List<E>
      Specified by:
      size in class AbstractCollection<E>
    • pop

      public E pop()
      Pops an object from the stack
    • peek

      public E peek()
      Returns the top of the stack.
    • reset

      public void reset()
      Clears all the contents in the stack.
    • getCycleString

      public String getCycleString()
      String that represents the cycle.