org.jibx.binding.util
Class SparseStack

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

public class SparseStack
extends java.lang.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 Summary
private  java.lang.Object m_current
          Current item.
private  ObjectStack m_items
          Stack of different items (paired with m_levels stack).
private  int m_level
          Current nesting level.
private  IntStack m_levels
          Levels with different items (paired with m_items stack).
 
Constructor Summary
SparseStack()
          Constructor with no initial value.
SparseStack(java.lang.Object current)
          Constructor with initial value.
 
Method Summary
 void enter()
          Enter a level of nesting.
 java.lang.Object exit()
          Exit a level of nesting with changed item returned.
 java.lang.Object getCurrent()
          Get current object.
 void setCurrent(java.lang.Object obj)
          Set current object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_current

private java.lang.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 Detail

SparseStack

public SparseStack(java.lang.Object current)
Constructor with initial value.

Parameters:
current - initial value

SparseStack

public SparseStack()
Constructor with no initial value.

Method Detail

getCurrent

public java.lang.Object getCurrent()
Get current object.

Returns:
current

setCurrent

public void setCurrent(java.lang.Object obj)
Set current object.

Parameters:
obj - set the current object

enter

public void enter()
Enter a level of nesting.


exit

public java.lang.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


Project Web Site