Class FilteredSegmentList

java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
org.jibx.schema.elements.FilteredSegmentList
All Implemented Interfaces:
Iterable, Collection, List, SequencedCollection

public class FilteredSegmentList extends AbstractList
Virtual 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 Details

    • 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 Details

    • 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 list
      match - included element types mask
      prior - filter which comes before this one (null if none)
      owner - element owning this list
    • FilteredSegmentList

      public FilteredSegmentList(LazyList list, long match, OpenAttrBase owner)
      Constructor with no prior filter.
      Parameters:
      list - backing list
      match - included element types mask
      owner - element owning this list
  • Method Details

    • 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 Object get(int index)
      Specified by:
      get in interface List
      Specified by:
      get in class AbstractList
    • size

      public int size()
      Specified by:
      size in interface Collection
      Specified by:
      size in interface List
      Specified by:
      size in class AbstractCollection
    • add

      public void add(int index, Object element)
      Specified by:
      add in interface List
      Overrides:
      add in class AbstractList
    • remove

      public Object remove(int index)
      Removes the item at the index position.
      Specified by:
      remove in interface List
      Overrides:
      remove in class AbstractList
      Parameters:
      index -
      Returns:
      removed item
    • remove

      public boolean remove(Object o)
      Specified by:
      remove in interface Collection
      Specified by:
      remove in interface List
      Overrides:
      remove in class AbstractCollection
    • set

      public Object set(int index, Object element)
      Specified by:
      set in interface List
      Overrides:
      set in class AbstractList
    • removeRange

      protected void removeRange(int from, int to)
      Overrides:
      removeRange in class AbstractList