Class SparseStack

java.lang.Object
org.jibx.binding.util.SparseStack

public class SparseStack extends Object
Stack for values that depend on the level of nesting, where only some of the levels change the current value.
Author:
Dennis M. Sosnoski
  • Field Details

    • m_current

      private Object m_current
      Current item.
    • m_level

      private int m_level
      Current nesting level.
    • m_levels

      private IntStack m_levels
      Levels with different items (paired with m_items stack).
    • m_items

      private ObjectStack m_items
      Stack of different items (paired with m_levels stack).
  • Constructor Details

    • SparseStack

      public SparseStack(Object current)
      Constructor with initial value.
      Parameters:
      current - initial value
    • SparseStack

      public SparseStack()
      Constructor with no initial value.
  • Method Details

    • getCurrent

      public Object getCurrent()
      Get current object.
      Returns:
      current
    • setCurrent

      public void setCurrent(Object obj)
      Set current object.
      Parameters:
      obj - set the current object
    • enter

      public void enter()
      Enter a level of nesting.
    • exit

      public Object exit()
      Exit a level of nesting with changed item returned.
      Returns:
      item that was active until this exit, or null if same item still active