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 final 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

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 Details

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

### LabelToOrdinal

public LabelToOrdinal()
Default constructor.

## Method Details

### 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.