Package org.apache.uima.cas.impl

# Class FSIndexComparatorImpl

java.lang.Object
org.apache.uima.cas.impl.FSIndexComparatorImpl

All Implemented Interfaces:
  `Comparable<FSIndexComparator>`, `FSIndexComparator`

public class FSIndexComparatorImpl extends Object implements FSIndexComparator
Specifies the comparison to be used for an index, in terms of - the keys and the typeorder, in an order - the standard/reverse ordering

- ## Field Summary

  ### Fields inherited from interface org.apache.uima.cas.admin.FSIndexComparator

  `FEATURE_KEY, REVERSE_STANDARD_COMPARE, STANDARD_COMPARE, TYPE_ORDER_KEY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FSIndexComparatorImpl()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `addKey(LinearTypeOrder typeOrder, int compareKey)`
  `int`
  `addKey(Feature feat, int compareKey)`
  Add a new key.
  `int`
  `compareTo(FSIndexComparator o)`
  Compares two FSIndexComparator instances.
  `FSIndexComparatorImpl`
  `copy()`
  `boolean`
  `equals(Object o)`
  Equals including the type of the comparator
  `int`
  `getKeyComparator(int key)`
  Get the comparator for this key.
  `FeatureImpl`
  `getKeyFeature(int key)`
  Get the feature for this key.
  `int`
  `getKeyType(int key)`
  `LinearTypeOrder`
  `getKeyTypeOrder(int key)`
  `int`
  `getNumberOfKeys()`
  Return the number of keys.
  `Type`
  `getType()`
  Get the type of this comparator.
  `int`
  `hashCode()`
  `boolean`
  `isValid()`
  Validate that this comparator is valid with respect to the type system.
  `void`
  `setType(Type type)`
  Set the type of this comparator.

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

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

- ## Constructor Details

  - ### FSIndexComparatorImpl

    public FSIndexComparatorImpl()

- ## Method Details

  - ### setType

    public void setType(Type type)
    Description copied from interface: `FSIndexComparator`
    Set the type of this comparator. Note that you can use this method more than once, in case you need to generate indexes that are identical except for the type.
    Specified by:
      `setType` in interface `FSIndexComparator`
    Parameters:
      `type` - The type of the index.

  - ### getType

    public Type getType()
    Description copied from interface: `FSIndexComparator`
    Get the type of this comparator.
    Specified by:
      `getType` in interface `FSIndexComparator`
    Returns:
      The type of the comparator.

  - ### addKey

    public int addKey(Feature feat, int compareKey)
    Description copied from interface: `FSIndexComparator`
    Add a new key.
    Specified by:
      `addKey` in interface `FSIndexComparator`
    Parameters:
      `feat` - The key feature.
      `compareKey` - The way to compare the key values.
    Returns:
      The number of the key.

  - ### addKey

    public int addKey(LinearTypeOrder typeOrder, int compareKey)
    Specified by:
      `addKey` in interface `FSIndexComparator`
    Parameters:
      `typeOrder` - the type order
      `compareKey` - the direction
    Returns:
      the number of the key

  - ### getKeyType

    public int getKeyType(int key)
    Specified by:
      `getKeyType` in interface `FSIndexComparator`

  - ### getNumberOfKeys

    public int getNumberOfKeys()
    Description copied from interface: `FSIndexComparator`
    Return the number of keys.
    Specified by:
      `getNumberOfKeys` in interface `FSIndexComparator`
    Returns:
      the number of keys.

  - ### getKeyFeature

    public FeatureImpl getKeyFeature(int key)
    Description copied from interface: `FSIndexComparator`
    Get the feature for this key.
    Specified by:
      `getKeyFeature` in interface `FSIndexComparator`
    Parameters:
      `key` - The number of the key.
    Returns:
      The corresponding feature, if it exists; `null`, else.

  - ### getKeyTypeOrder

    public LinearTypeOrder getKeyTypeOrder(int key)

  - ### getKeyComparator

    public int getKeyComparator(int key)
    Description copied from interface: `FSIndexComparator`
    Get the comparator for this key.
    Specified by:
      `getKeyComparator` in interface `FSIndexComparator`
    Parameters:
      `key` - The number of the key.
    Returns:
      The corresponding comparator, if it exists; `-1`, else.

  - ### equals

    public boolean equals(Object o)
    Equals including the type of the comparator
    Specified by:
      `equals` in interface `FSIndexComparator`
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### isValid

    public boolean isValid()
    Description copied from interface: `FSIndexComparator`
    Validate that this comparator is valid with respect to the type system. Note that all types and features used to define this comparator must come from the same type system. Note that this method only returns true or false. It doesn't tell you what's actually wrong. Maybe we need to change that?
    Specified by:
      `isValid` in interface `FSIndexComparator`
    Returns:
      `true` iff all key features are appropriate for the type of this comparator.

  - ### copy

    public FSIndexComparatorImpl copy()

  - ### compareTo

    public int compareTo(FSIndexComparator o)
    Compares two FSIndexComparator instances. The code to compare two FSs is in the compare method of FsIndex_singletype.
    Specified by:
      `compareTo` in interface `Comparable<FSIndexComparator>`
    See Also:
      - `Comparable.compareTo(Object)`