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
`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 and Description
`LabelToOrdinal()` Default constructor.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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.