Package org.jibx.schema.elements
Class FilteredSegmentList
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList
-
- org.jibx.schema.elements.FilteredSegmentList
-
- All Implemented Interfaces:
java.lang.Iterable,java.util.Collection,java.util.List
public class FilteredSegmentList extends java.util.AbstractListVirtual list generated from a backing list by filtering on the element types. This exposes a segment of the backing list through the filter, with multiple filters used to expose the entire backing list piecemeal. It can only be used with lists of elements.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description private intm_lastModifyLast modify count matching cached values.private LazyListm_listBase list.private longm_matchBitsMask for element types to match in filter.private OpenAttrBasem_ownerElement owning this list.private FilteredSegmentListm_priorFilter for elements prior to this filter in list.private intm_sizeCached size of filtered list.private intm_startIndexCached filtered list start index in base list.
-
Constructor Summary
Constructors Modifier Constructor Description privateFilteredSegmentList()Dummy default constructor for unmarshalling.FilteredSegmentList(LazyList list, long match, FilteredSegmentList prior, OpenAttrBase owner)Constructor with everything specified.FilteredSegmentList(LazyList list, long match, OpenAttrBase owner)Constructor with no prior filter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int index, java.lang.Object element)java.lang.Objectget(int index)java.lang.Objectremove(int index)Removes the item at the index position.booleanremove(java.lang.Object o)protected voidremoveRange(int from, int to)java.lang.Objectset(int index, java.lang.Object element)private voidsetModify()Update modify count to show cached state is current.intsize()private voidsync()Synchronize filter to current list state.-
Methods inherited from class java.util.AbstractList
add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, subList
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString
-
-
-
-
Field Detail
-
m_list
private final LazyList m_list
Base list.
-
m_matchBits
private final long m_matchBits
Mask for element types to match in filter.
-
m_prior
private final FilteredSegmentList m_prior
Filter for elements prior to this filter in list.
-
m_owner
private final OpenAttrBase m_owner
Element owning this list.
-
m_lastModify
private int m_lastModify
Last modify count matching cached values.
-
m_startIndex
private int m_startIndex
Cached filtered list start index in base list.
-
m_size
private int m_size
Cached size of filtered list.
-
-
Constructor Detail
-
FilteredSegmentList
private FilteredSegmentList()
Dummy default constructor for unmarshalling.
-
FilteredSegmentList
public FilteredSegmentList(LazyList list, long match, FilteredSegmentList prior, OpenAttrBase owner)
Constructor with everything specified.- Parameters:
list- backing listmatch- included element types maskprior- filter which comes before this one (nullif none)owner- element owning this list
-
FilteredSegmentList
public FilteredSegmentList(LazyList list, long match, OpenAttrBase owner)
Constructor with no prior filter.- Parameters:
list- backing listmatch- included element types maskowner- element owning this list
-
-
Method Detail
-
setModify
private void setModify()
Update modify count to show cached state is current. This propagates to any prior filter(s).
-
sync
private void sync()
Synchronize filter to current list state. If the cached state is not current this updates the cached state to reflect the current state of the backing list.
-
get
public java.lang.Object get(int index)
- Specified by:
getin interfacejava.util.List- Specified by:
getin classjava.util.AbstractList
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection- Specified by:
sizein interfacejava.util.List- Specified by:
sizein classjava.util.AbstractCollection
-
add
public void add(int index, java.lang.Object element)- Specified by:
addin interfacejava.util.List- Overrides:
addin classjava.util.AbstractList
-
remove
public java.lang.Object remove(int index)
Removes the item at the index position.- Specified by:
removein interfacejava.util.List- Overrides:
removein classjava.util.AbstractList- Parameters:
index-- Returns:
- removed item
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
removein interfacejava.util.Collection- Specified by:
removein interfacejava.util.List- Overrides:
removein classjava.util.AbstractCollection
-
set
public java.lang.Object set(int index, java.lang.Object element)- Specified by:
setin interfacejava.util.List- Overrides:
setin classjava.util.AbstractList
-
removeRange
protected void removeRange(int from, int to)- Overrides:
removeRangein classjava.util.AbstractList
-
-