Package org.apache.lucene.facet.taxonomy.writercache

## Class LabelToOrdinal

- java.lang.Object
- - org.apache.lucene.facet.taxonomy.writercache.LabelToOrdinal

-     public abstract class LabelToOrdinal
      extends Object

  Abstract class for storing Label->Ordinal mappings in a taxonomy.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `counter` | How many ordinals we've seen.
    `static int` | `INVALID_ORDINAL` | Returned by `getOrdinal(org.apache.lucene.facet.taxonomy.FacetLabel)` when the label isn't recognized.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LabelToOrdinal()` | Default constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | `addLabel​(FacetLabel label, int ordinal)` | Adds a new label if it is not yet in the table.
    `int` | `getMaxOrdinal()` | return the maximal Ordinal assigned so far
    `int` | `getNextOrdinal()` | Returns the next unassigned ordinal.
    `abstract int` | `getOrdinal​(FacetLabel label)` | Returns the ordinal assigned to the given label, or `INVALID_ORDINAL` if the label cannot be found in this table.

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

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

- - ### Field Detail

    - #### counter

          protected int counter

      How many ordinals we've seen.

    - #### INVALID_ORDINAL

          public static final int INVALID_ORDINAL

      Returned by `getOrdinal(org.apache.lucene.facet.taxonomy.FacetLabel)` when the label isn't recognized.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### LabelToOrdinal

          public LabelToOrdinal()

      Default constructor.

  - ### Method Detail

    - #### getMaxOrdinal

          public int getMaxOrdinal()

      return the maximal Ordinal assigned so far

    - #### getNextOrdinal

          public int getNextOrdinal()

      Returns the next unassigned ordinal. The default behavior of this method is to simply increment a counter.

    - #### addLabel

          public abstract void addLabel​(FacetLabel label,
                                        int ordinal)

      Adds a new label if it is not yet in the table. Throws an `IllegalArgumentException` if the same label with a different ordinal was previously added to this table.

    - #### getOrdinal

          public abstract int getOrdinal​(FacetLabel label)

      Returns the ordinal assigned to the given label, or `INVALID_ORDINAL` if the label cannot be found in this table.