Package org.apache.lucene.codecs

# Class FilterCodec

java.lang.Object
org.apache.lucene.codecs.Codec
org.apache.lucene.codecs.FilterCodec

All Implemented Interfaces:
  `NamedSPILoader.NamedSPI`

public abstract class FilterCodec extends Codec
A codec that forwards all its method calls to another codec.

Extend this class when you need to reuse the functionality of an existing codec. For example, if you want to build a codec that redefines LuceneMN's `LiveDocsFormat`:

       public final class CustomCodec extends FilterCodec {

         public CustomCodec() {
           super("CustomCodec", new LuceneMNCodec());
         }

         public LiveDocsFormat liveDocsFormat() {
           return new CustomLiveDocsFormat();
         }

       }

Please note: Don't call `Codec.forName(java.lang.String)` from the no-arg constructor of your own codec. When the SPI framework loads your own Codec as SPI component, SPI has not yet fully initialized! If you want to extend another Codec, instantiate it directly by calling its constructor.

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

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final Codec`
`delegate`
The codec to filter.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`FilterCodec(String name, Codec delegate)`
Sole constructor.

## Method Summary

Modifier and Type
Method
Description
`CompoundFormat`
`compoundFormat()`
Encodes/decodes compound files
`DocValuesFormat`
`docValuesFormat()`
Encodes/decodes docvalues
`FieldInfosFormat`
`fieldInfosFormat()`
Encodes/decodes field infos file
`KnnVectorsFormat`
`knnVectorsFormat()`
Encodes/decodes numeric vector fields
`LiveDocsFormat`
`liveDocsFormat()`
Encodes/decodes live docs
`NormsFormat`
`normsFormat()`
Encodes/decodes document normalization values
`PointsFormat`
`pointsFormat()`
Encodes/decodes points index
`PostingsFormat`
`postingsFormat()`
Encodes/decodes postings
`SegmentInfoFormat`
`segmentInfoFormat()`
Encodes/decodes segment info file
`StoredFieldsFormat`
`storedFieldsFormat()`
Encodes/decodes stored fields
`TermVectorsFormat`
`termVectorsFormat()`
Encodes/decodes term vectors

### Methods inherited from class org.apache.lucene.codecs.Codec

`availableCodecs, forName, getDefault, getName, reloadCodecs, setDefault, toString`

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

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

## Field Details

### delegate

protected final Codec delegate
The codec to filter.

## Constructor Details

### FilterCodec

protected FilterCodec(String name, Codec delegate)
Sole constructor. When subclassing this codec, create a no-arg ctor and pass the delegate codec and a unique name to this ctor.

## Method Details

### docValuesFormat

public DocValuesFormat docValuesFormat()
Description copied from class: `Codec`
Encodes/decodes docvalues

Specified by:
  `docValuesFormat` in class `Codec`

### fieldInfosFormat

public FieldInfosFormat fieldInfosFormat()
Description copied from class: `Codec`
Encodes/decodes field infos file

Specified by:
  `fieldInfosFormat` in class `Codec`

### liveDocsFormat

public LiveDocsFormat liveDocsFormat()
Description copied from class: `Codec`
Encodes/decodes live docs

Specified by:
  `liveDocsFormat` in class `Codec`

### normsFormat

public NormsFormat normsFormat()
Description copied from class: `Codec`
Encodes/decodes document normalization values

Specified by:
  `normsFormat` in class `Codec`

### postingsFormat

public PostingsFormat postingsFormat()
Description copied from class: `Codec`
Encodes/decodes postings

Specified by:
  `postingsFormat` in class `Codec`

### segmentInfoFormat

public SegmentInfoFormat segmentInfoFormat()
Description copied from class: `Codec`
Encodes/decodes segment info file

Specified by:
  `segmentInfoFormat` in class `Codec`

### storedFieldsFormat

public StoredFieldsFormat storedFieldsFormat()
Description copied from class: `Codec`
Encodes/decodes stored fields

Specified by:
  `storedFieldsFormat` in class `Codec`

### termVectorsFormat

public TermVectorsFormat termVectorsFormat()
Description copied from class: `Codec`
Encodes/decodes term vectors

Specified by:
  `termVectorsFormat` in class `Codec`

### compoundFormat

public CompoundFormat compoundFormat()
Description copied from class: `Codec`
Encodes/decodes compound files

Specified by:
  `compoundFormat` in class `Codec`

### pointsFormat

public PointsFormat pointsFormat()
Description copied from class: `Codec`
Encodes/decodes points index

Specified by:
  `pointsFormat` in class `Codec`

### knnVectorsFormat

public KnnVectorsFormat knnVectorsFormat()
Description copied from class: `Codec`
Encodes/decodes numeric vector fields

Specified by:
  `knnVectorsFormat` in class `Codec`