Package org.apache.lucene.facet.taxonomy

# Class FacetLabel

java.lang.Object
org.apache.lucene.facet.taxonomy.FacetLabel

All Implemented Interfaces:
  `Comparable<FacetLabel>`

public class FacetLabel extends Object implements Comparable<FacetLabel>
Holds a sequence of string components, specifying the hierarchical name of a category.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

## Field Summary

Fields
Modifier and Type
Field
Description
`final String[]`
`components`
The components of this `FacetLabel`.
`final int`
`length`
The number of components of this `FacetLabel`.
`static final int`
`MAX_CATEGORY_PATH_LENGTH`
The maximum number of characters a `FacetLabel` can have.

## Constructor Summary

Constructors
Constructor
Description
`FacetLabel(String... components)`
Construct from the given path components.
`FacetLabel(String dim, String[] path)`
Construct from the dimension plus the given path components.

## Method Summary

Modifier and Type
Method
Description
`int`
`compareTo(FacetLabel other)`
Compares this path with another `FacetLabel` for lexicographic order.
`boolean`
`equals(Object obj)`
`int`
`hashCode()`
`String`
`lastComponent()`
Get the last component.
`long`
`longHashCode()`
Calculate a 64-bit hash function for this path.
`FacetLabel`
`subpath(int length)`
Returns a sub-path of this path up to `length` components.
`String`
`toString()`
Returns a string representation of the path.

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

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

## Field Details

### MAX_CATEGORY_PATH_LENGTH

public static final int MAX_CATEGORY_PATH_LENGTH
The maximum number of characters a `FacetLabel` can have.

See Also:
  - Constant Field Values

### components

public final String[] components
The components of this `FacetLabel`. Note that this array may be shared with other `FacetLabel` instances, e.g. as a result of `subpath(int)`, therefore you should traverse the array up to `length` for this path's components.

### length

public final int length
The number of components of this `FacetLabel`.

## Constructor Details

### FacetLabel

public FacetLabel(String... components)
Construct from the given path components.

### FacetLabel

public FacetLabel(String dim, String[] path)
Construct from the dimension plus the given path components.

## Method Details

### compareTo

public int compareTo(FacetLabel other)
Compares this path with another `FacetLabel` for lexicographic order.

Specified by:
  `compareTo` in interface `Comparable<FacetLabel>`

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### longHashCode

public long longHashCode()
Calculate a 64-bit hash function for this path. This is necessary for `NameHashIntCacheLRU` (the default cache impl for `LruTaxonomyWriterCache`) to reduce the chance of "silent but deadly" collisions.

### subpath

public FacetLabel subpath(int length)
Returns a sub-path of this path up to `length` components.

### lastComponent

public String lastComponent()
Get the last component.

### toString

public String toString()
Returns a string representation of the path.

Overrides:
  `toString` in class `Object`