Package org.apache.lucene.facet.facetset

# Class FacetSet

java.lang.Object
org.apache.lucene.facet.facetset.FacetSet

Direct Known Subclasses:
  `DoubleFacetSet`, `FloatFacetSet`, `IntFacetSet`, `LongFacetSet`

public abstract class FacetSet extends Object
Holds a set of facet dimension values.

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Field Summary

Fields
Modifier and Type
Field
Description
`final int`
`dims`
The number of dimension values in this set.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`FacetSet(int dims)`
Constructs a new instance of a facet set with the given number of dimensions.

## Method Summary

Modifier and Type
Method
Description
`abstract long[]`
`getComparableValues()`
Returns the dimension values in this facet set as comparable longs.
`int`
`packValues(byte[] buf, int start)`
Packs the dimension values into the given `byte[]` and returns the number of packed-values bytes.
`int`
`sizePackedBytes()`
Returns the size of the packed values in this facet set.

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

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

## Field Details

### dims

public final int dims
The number of dimension values in this set.

## Constructor Details

### FacetSet

protected FacetSet(int dims)
Constructs a new instance of a facet set with the given number of dimensions.

## Method Details

### getComparableValues

public abstract long[] getComparableValues()
Returns the dimension values in this facet set as comparable longs.

### packValues

public int packValues(byte[] buf, int start)
Packs the dimension values into the given `byte[]` and returns the number of packed-values bytes. The default implementation packs the `comparable values`, and you can override to implement your own scheme.

### sizePackedBytes

public int sizePackedBytes()
Returns the size of the packed values in this facet set. If the value is unknown in advance (e.g. if the values are compressed), this method can return an upper limit. The default implementations returns `dims * Long.BYTES` per the default implementation of `packValues(byte[], int)`. You should override if you implement `packValues(byte[], int)` differently.