Package org.apache.lucene.spatial.util

# Class ShapeFieldCacheProvider<T extends org.locationtech.spatial4j.shape.Shape>

java.lang.Object
org.apache.lucene.spatial.util.ShapeFieldCacheProvider<T>

Direct Known Subclasses:
  `PointPrefixTreeFieldCacheProvider`

public abstract class ShapeFieldCacheProvider<T extends org.locationtech.spatial4j.shape.Shape> extends Object
Provides access to a `ShapeFieldCache` for a given `LeafReader`.

If a Cache does not exist for the Reader, then it is built by iterating over the all terms for a given field, reconstructing the Shape from them, and adding them to the Cache.

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
`protected final int`
`defaultSize`
`protected final String`
`shapeField`

## Constructor Summary

Constructors
Constructor
Description
`ShapeFieldCacheProvider(String shapeField, int defaultSize)`

## Method Summary

Modifier and Type
Method
Description
`ShapeFieldCache<T>`
`getCache(LeafReader reader)`
`protected abstract T`
`readShape(BytesRef term)`

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

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

## Field Details

### defaultSize

protected final int defaultSize

### shapeField

protected final String shapeField

## Constructor Details

### ShapeFieldCacheProvider

public ShapeFieldCacheProvider(String shapeField, int defaultSize)

## Method Details

### readShape

protected abstract T readShape(BytesRef term)

### getCache

public ShapeFieldCache<T> getCache(LeafReader reader) throws IOException

Throws:
  `IOException`