## org.apache.lucene.codecs
Class StoredFieldsWriter

    java.lang.Object
      org.apache.lucene.codecs.StoredFieldsWriter

All Implemented Interfaces:
  Closeable

Direct Known Subclasses:
  CompressingStoredFieldsWriter, Lucene40StoredFieldsWriter

    public abstract class StoredFieldsWriter

extends Object
implements Closeable

Codec API for writing stored fields:

1. For every document, `startDocument(int)` is called, informing the Codec how many fields will be written.
2. `writeField(FieldInfo, IndexableField)` is called for each field in the document.
3. After all documents have been written, `finish(FieldInfos, int)` is called for verification/sanity-checks.
4. Finally the writer is closed (`close()`)

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

Constructor Summary
`protected` `StoredFieldsWriter()` Sole constructor.

Method Summary
`abstract void` `abort()` Aborts writing entirely, implementation should remove any partially-written files, etc.
`protected void` `addDocument(Iterable<? extends IndexableField> doc, FieldInfos fieldInfos)` sugar method for startDocument() + writeField() for every stored field in the document
`abstract void` `close()`
`abstract void` `finish(FieldInfos fis, int numDocs)` Called before `close()`, passing in the number of documents that were written.
`void` `finishDocument()` Called when a document and all its fields have been added.
`int` `merge(MergeState mergeState)` Merges in the stored fields from the readers in `mergeState`.
`abstract void` `startDocument(int numStoredFields)` Called before writing the stored fields of the document.
`abstract void` `writeField(FieldInfo info, IndexableField field)` Writes a single stored field.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### StoredFieldsWriter

    protected StoredFieldsWriter()

  Sole constructor. (For invocation by subclass constructors, typically implicit.)

Method Detail

### startDocument

    public abstract void startDocument(int numStoredFields)
                                throws IOException

  Called before writing the stored fields of the document. `writeField(FieldInfo, IndexableField)` will be called `numStoredFields` times. Note that this is called even if the document has no stored fields, in this case `numStoredFields` will be zero.

  Throws:
    `IOException`

### finishDocument

    public void finishDocument()
                        throws IOException

  Called when a document and all its fields have been added.

  Throws:
    `IOException`

### writeField

    public abstract void writeField(FieldInfo info,
                                    IndexableField field)
                             throws IOException

  Writes a single stored field.

  Throws:
    `IOException`

### abort

    public abstract void abort()

  Aborts writing entirely, implementation should remove any partially-written files, etc.

### finish

    public abstract void finish(FieldInfos fis,
                                int numDocs)
                         throws IOException

  Called before `close()`, passing in the number of documents that were written. Note that this is intentionally redundant (equivalent to the number of calls to `startDocument(int)`, but a Codec should check that this is the case to detect the JRE bug described in LUCENE-1282.

  Throws:
    `IOException`

### merge

    public int merge(MergeState mergeState)
              throws IOException

  Merges in the stored fields from the readers in `mergeState`. The default implementation skips over deleted documents, and uses `startDocument(int)`, `writeField(FieldInfo, IndexableField)`, and `finish(FieldInfos, int)`, returning the number of documents that were written. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).

  Throws:
    `IOException`

### addDocument

    protected final void addDocument(Iterable<? extends IndexableField> doc,
                                     FieldInfos fieldInfos)
                              throws IOException

  sugar method for startDocument() + writeField() for every stored field in the document

  Throws:
    `IOException`

### close

    public abstract void close()
                        throws IOException

  Specified by:
    `close` in interface `Closeable`
  Throws:
    `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.