org.apache.uima.cas.impl

## Class FsIndex_bag<T extends FeatureStructure>

- java.lang.Object
- - java.util.AbstractCollection<T>
  - - org.apache.uima.cas.impl.FsIndex_singletype<T>
    - - org.apache.uima.cas.impl.FsIndex_bag<T>

- Type Parameters:
    `T` - the Java cover class type for this index, passed along to (wrapped) iterators producing Java cover classes NOTE: V3 doesn't support ALLOW_DUP_ADD_TO_INDEXES
  All Implemented Interfaces:
    Iterable<T>, Collection<T>, Comparator<FeatureStructure>, FSIndex<T>, LowLevelIndex<T>

      public class FsIndex_bag<T extends FeatureStructure>
      extends FsIndex_singletype<T>

  Used for UIMA FS Bag Indexes Uses ObjHashSet to hold instances of FeatureStructures

- - ### Field Summary

    - ### Fields inherited from class org.apache.uima.cas.impl.FsIndex_singletype

      `casImpl, comparatorForIndexSpecs, comparatorNoTypeWithID, comparatorNoTypeWithoutID, comparatorWithID, comparatorWithoutID, isAnnotIdx, type, wr_cow`

    - ### Fields inherited from interface org.apache.uima.cas.impl.LowLevelIndex

      `FS_ID_COMPARATOR, IS_ORDERED, IS_TYPE_ORDER`

    - ### Fields inherited from interface org.apache.uima.cas.FSIndex

      `BAG_INDEX, DEFAULT_BAG_INDEX, SET_INDEX, SORTED_INDEX`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `bulkAddTo(List<T> fss)` For serialization: get all the items in this index and bulk add to an List<T>
    `int` | `compare(FeatureStructure fs1, FeatureStructure fs2)` Override the super impl which uses comparators.
    `boolean` | `contains(FeatureStructure fs)` Check if the index contains an element equal to the given feature structure according to the comparators defined for this index.
    `protected CopyOnWriteIndexPart<T>` | `createCopyOnWriteIndexPart()`
    `boolean` | `deleteFS(T fs)` only for backwards compatibility
    `T` | `find(FeatureStructure fs)` This is a silly method for bag indexes in V3, since dupl add to indexes is not allowed.
    `void` | `flush()`
    `int` | `hashCode()`
    `void` | `insert(T fs)` Adding FS to an index.
    `LowLevelIterator<T>` | `iterator()` Return an iterator over the index.
    `LowLevelIterator<T>` | `iterator(boolean orderNotNeeded, boolean ignoreType)` Internal use, used by select framework.
    `int` | `ll_maxAnnotSpan()`
    `int` | `size()` Return the number of feature structures in this index.

    - ### Methods inherited from class org.apache.uima.cas.impl.FsIndex_singletype

      `assertFsTypeMatchesIndexType, compare, equals, getCasImpl, getComparator, getComparatorForIndexSpecs, getComparatorImplForIndexSpecs, getCopyOnWriteIndexPart, getIndexingStrategy, getNonNullCow, getType, getTypeImpl, isSorted, iterator, ll_compare, ll_iterator, maybeCopy, toString, withSnapshotIterators`

    - ### Methods inherited from class java.util.AbstractCollection

      `add, addAll, clear, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Comparator

      `comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

    - ### Methods inherited from interface org.apache.uima.cas.impl.LowLevelIndex

      `getIntIterator, getSubIndex, getSubIndex, ll_iterator, select, select, select, select, select`

    - ### Methods inherited from interface org.apache.uima.cas.FSIndex

      `stream, subType, subType`

    - ### Methods inherited from interface java.util.Collection

      `add, addAll, clear, contains, containsAll, isEmpty, parallelStream, remove, removeAll, removeIf, retainAll, spliterator, toArray, toArray`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

- - ### Method Detail

    - #### flush

          public void flush()

      Specified by:
        `flush` in interface `LowLevelIndex<T extends FeatureStructure>`
      Overrides:
        `flush` in class `FsIndex_singletype<T extends FeatureStructure>`

    - #### insert

          public final void insert(T fs)

      Description copied from class: `FsIndex_singletype`
      Adding FS to an index. not in upper interfaces because it's internal use only - called via addToIndexes etc.
      Parameters:
        `fs` - the fs to be added

    - #### compare

          public int compare(FeatureStructure fs1,
                             FeatureStructure fs2)

      Override the super impl which uses comparators. For bag indexes, compare equal only if identical addresses
      Specified by:
        `compare` in interface `Comparator<FeatureStructure>`
      Specified by:
        `compare` in interface `FSIndex<T extends FeatureStructure>`
      Specified by:
        `compare` in class `FsIndex_singletype<T extends FeatureStructure>`
      Parameters:
        `fs1` - the first Feature Structure to compare
        `fs2` - the second Feature Structure to compare
      Returns:
        `-1` if `fs1 < fs2`; `0` if `fs1 = fs2`; `1` else.

    - #### contains

          public boolean contains(FeatureStructure fs)

      Description copied from interface: `FSIndex`

      Check if the index contains an element equal to the given feature structure according to the comparators defined for this index. For bag indexes (which have no comparators), the equality test means the identical feature structure. Note that this is in general not the same as feature structure identity.

      The element is used as a template, and may be a supertype of the type of the index, as long as the keys specified for this index can be accessed.

      Parameters:
        `fs` - A Feature Structure used a template to match for equality with the FSs in the index.
      Returns:
        `true` if the index contains such an element.
      See Also:
        `FSIndex.contains(FeatureStructure)`

    - #### find

          public T find(FeatureStructure fs)

      This is a silly method for bag indexes in V3, since dupl add to indexes is not allowed.
      Parameters:
        `fs` - -
      Returns:
        null or the original fs if the fs is in the index
      See Also:
        `FSIterator.moveTo(FeatureStructure)`

    - #### size

          public int size()

      Description copied from interface: `FSIndex`
      Return the number of feature structures in this index.
      Specified by:
        `size` in interface `Collection<T extends FeatureStructure>`
      Specified by:
        `size` in interface `FSIndex<T extends FeatureStructure>`
      Specified by:
        `size` in class `AbstractCollection<T extends FeatureStructure>`
      Returns:
        The number of FSs in this index.
      See Also:
        `FSIndex.size()`

    - #### deleteFS

          public boolean deleteFS(T fs)

      only for backwards compatibility
      Parameters:
        `fs` - - the Feature Structure to be removed. Only this exact Feature Structure is removed (this is a stronger test than, for example, what moveTo(fs) does, where the fs in that case is used as a template). It is not an error if this exact Feature Structure is not in an index.
      Returns:
        true if something was removed, false if not found

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in interface `Collection<T extends FeatureStructure>`
      Overrides:
        `hashCode` in class `FsIndex_singletype<T extends FeatureStructure>`

    - #### bulkAddTo

          protected void bulkAddTo(List<T> fss)

      Description copied from class: `FsIndex_singletype`
      For serialization: get all the items in this index and bulk add to an List<T>
      Specified by:
        `bulkAddTo` in class `FsIndex_singletype<T extends FeatureStructure>`
      Parameters:
        `fss` - the set of items to add

    - #### iterator

          public LowLevelIterator<T> iterator(boolean orderNotNeeded,
                                              boolean ignoreType)

      Description copied from interface: `LowLevelIndex`
      Internal use, used by select framework. Return an iterator over the index. The position of the iterator will be set to return the first item in the index. If the index is empty, the iterator position will be marked as invalid.
      Parameters:
        `orderNotNeeded` - if true, skips work while iterating to keep iterators over multiple types in sync.
        `ignoreType` - if true, the comparator used for moveTo leftmost operations will ignore typeOrder keys, if the index happens to define these
      Returns:
        An FSIterator positioned at the beginning, or an invalid iterator.

    - #### createCopyOnWriteIndexPart

          protected CopyOnWriteIndexPart<T> createCopyOnWriteIndexPart()

      Specified by:
        `createCopyOnWriteIndexPart` in class `FsIndex_singletype<T extends FeatureStructure>`

    - #### ll_maxAnnotSpan

          public int ll_maxAnnotSpan()

      Returns:
        for annotation indexes, an conservative estimate the maximum span between begin and end The value may be larger than actual.

    - #### iterator

          public LowLevelIterator<T> iterator()

      Description copied from interface: `LowLevelIndex`
      Return an iterator over the index. The position of the iterator will be set to return the first item in the index. If the index is empty, the iterator position will be marked as invalid.
      Specified by:
        `iterator` in interface `Iterable<T extends FeatureStructure>`
      Specified by:
        `iterator` in interface `Collection<T extends FeatureStructure>`
      Specified by:
        `iterator` in interface `FSIndex<T extends FeatureStructure>`
      Specified by:
        `iterator` in interface `LowLevelIndex<T extends FeatureStructure>`
      Specified by:
        `iterator` in class `AbstractCollection<T extends FeatureStructure>`
      Returns:
        An FSIterator positioned at the beginning, or an invalid iterator.

Copyright © 2006–2022 The Apache Software Foundation. All rights reserved.