|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object it.unimi.di.mg4j.document.AbstractDocumentFactory it.unimi.di.mg4j.document.CompositeDocumentFactory
public class CompositeDocumentFactory
A composite factory that passes the input stream to a sequence of factories in turn.
Factories can be composed. A composite factory will pass in turn
the input stream given to getDocument(InputStream, Reference2ObjectMap)
to the underlying factories, after calling InputStream.reset()
.
Document sequences using
composite factories must pass to getDocument(InputStream, Reference2ObjectMap)
a MultipleInputStream
that can be reset enough times.
Note that in general composite factories support only sequential access to field content (albeit skipping items is allowed).
Nested Class Summary | |
---|---|
protected class |
CompositeDocumentFactory.CompositeDocument
A document obtained by composition of documents of underyling factories. |
Nested classes/interfaces inherited from interface it.unimi.di.mg4j.document.DocumentFactory |
---|
DocumentFactory.FieldType |
Constructor Summary | |
---|---|
protected |
CompositeDocumentFactory(DocumentFactory[] documentFactory,
String[] fieldName)
Creates a new composite document factory using the factories in a given array. |
Method Summary | |
---|---|
CompositeDocumentFactory |
copy()
|
int |
fieldIndex(String fieldName)
Returns the index of a field, given its symbolic name. |
String |
fieldName(int field)
Returns the symbolic name of a field. |
DocumentFactory.FieldType |
fieldType(int field)
Returns the type of a field. |
Document |
getDocument(InputStream rawContent,
Reference2ObjectMap<Enum<?>,Object> metadata)
Returns the document obtained by parsing the given byte stream. |
static DocumentFactory |
getFactory(DocumentFactory... documentFactory)
Returns a document factory composing the given document factories. |
static DocumentFactory |
getFactory(DocumentFactory[] documentFactory,
String[] fieldName)
Returns a document factory composing the given document factories. |
int |
numberOfFields()
Returns the number of fields present in the documents produced by this factory. |
Methods inherited from class it.unimi.di.mg4j.document.AbstractDocumentFactory |
---|
ensureFieldIndex, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
protected CompositeDocumentFactory(DocumentFactory[] documentFactory, String[] fieldName)
documentFactory
- an array of document factories that will composed.fieldName
- an array of names for the resulting field, or null
.Method Detail |
---|
public CompositeDocumentFactory copy()
public static DocumentFactory getFactory(DocumentFactory[] documentFactory, String[] fieldName)
By passing an optional array of field names, it is possible to rename the fields of the composing factories.
documentFactory
- an array of document factories that will composed.fieldName
- an array of names for the resulting field, or null
.
public static DocumentFactory getFactory(DocumentFactory... documentFactory)
documentFactory
- document factories that will composed.
public int numberOfFields()
DocumentFactory
public String fieldName(int field)
DocumentFactory
field
- the index of a field (between 0 inclusive and DocumentFactory.numberOfFields()
exclusive}).
field
-th field.public int fieldIndex(String fieldName)
DocumentFactory
fieldName
- the name of a field of this factory.
fieldName
.public DocumentFactory.FieldType fieldType(int field)
DocumentFactory
The possible types are defined in DocumentFactory.FieldType
.
field
- the index of a field (between 0 inclusive and DocumentFactory.numberOfFields()
exclusive}).
field
-th field.public Document getDocument(InputStream rawContent, Reference2ObjectMap<Enum<?>,Object> metadata) throws IOException
DocumentFactory
The parameter metadata
actually replaces the lack of a simple keyword-based
parameter-passing system in Java. This method might take several different type of “suggestions”
which have been collected by the collection: typically, the document title, a URI representing
the document, its MIME type, its encoding and so on. Some of this information might be
set by default (as it happens, for instance, in a PropertyBasedDocumentFactory
).
Implementations of this method must consult the metadata provided by the collection, possibly
complete them with default factory metadata, and proceed to the document construction.
rawContent
- the raw content from which the document should be extracted; it must not be closed, as
resource management is a responsibility of the DocumentCollection.metadata
- a map from enums (e.g., keys taken in PropertyBasedDocumentFactory
) to various kind of objects.
IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |