org.jibx.util
Class SparseArrayIterator

java.lang.Object
  extended by org.jibx.util.SparseArrayIterator
All Implemented Interfaces:
java.util.Iterator

public class SparseArrayIterator
extends java.lang.Object
implements java.util.Iterator

Iterator class for sparse values in an array. This type of iterator can be used for an object array which has references interspersed with nulls.

Author:
Dennis M. Sosnoski

Field Summary
static SparseArrayIterator EMPTY_ITERATOR
          Empty iterator.
private  java.lang.Object[] m_array
          Array supplying values for iteration.
private  int m_offset
          Offset of next iteration value.
 
Constructor Summary
private SparseArrayIterator(java.lang.Object[] array)
          Internal constructor.
 
Method Summary
protected  boolean advance()
          Advance to next iteration value.
static java.util.Iterator buildIterator(java.lang.Object[] array)
          Build iterator.
 boolean hasNext()
          Check for iteration element available.
 java.lang.Object next()
          Get next iteration element.
 void remove()
          Remove element from iteration.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_ITERATOR

public static final SparseArrayIterator EMPTY_ITERATOR
Empty iterator.


m_array

private java.lang.Object[] m_array
Array supplying values for iteration.


m_offset

private int m_offset
Offset of next iteration value.

Constructor Detail

SparseArrayIterator

private SparseArrayIterator(java.lang.Object[] array)
Internal constructor.

Parameters:
array - array containing values to be iterated
Method Detail

advance

protected boolean advance()
Advance to next iteration value. This advances the current position in the array to the next non-null value.

Returns:
true if element available, false if not

hasNext

public boolean hasNext()
Check for iteration element available.

Specified by:
hasNext in interface java.util.Iterator
Returns:
true if element available, false if not

next

public java.lang.Object next()
Get next iteration element.

Specified by:
next in interface java.util.Iterator
Returns:
next iteration element
Throws:
java.util.NoSuchElementException - if past end of iteration

remove

public void remove()
Remove element from iteration. This optional operation is not supported and always throws an exception.

Specified by:
remove in interface java.util.Iterator
Throws:
java.lang.UnsupportedOperationException - for unsupported operation

buildIterator

public static java.util.Iterator buildIterator(java.lang.Object[] array)
Build iterator.

Parameters:
array - array containing values to be iterated (may be null)
Returns:
constructed iterator


Project Web Site