java.lang.Object | |
↳ | org.apache.lucene.util.AttributeSource |
Known Direct Subclasses |
An AttributeSource contains a list of different AttributeImpl
s,
and methods to add and get them. There can only be a single instance
of an attribute in the same AttributeSource instance. This is ensured
by passing in the actual type of the Attribute (Class<Attribute>) to
the addAttribute(Class)
, which then checks if an instance of
that type is already present. If yes, it returns the instance, otherwise
it creates a new instance and returns it.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
AttributeSource.AttributeFactory | An AttributeFactory creates instances of AttributeImpl s. |
||||||||||
AttributeSource.State | This class holds the state of an AttributeSource. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
An AttributeSource using the default attribute factory
DEFAULT_ATTRIBUTE_FACTORY . | |||||||||||
An AttributeSource that uses the same attributes as the supplied one.
| |||||||||||
An AttributeSource using the supplied
AttributeSource.AttributeFactory for creating new Attribute instances. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
The caller must pass in a Class<? extends Attribute> value.
| |||||||||||
Expert: Adds a custom AttributeImpl instance with one or more Attribute interfaces.
| |||||||||||
Captures the state of all Attributes.
| |||||||||||
Resets all Attributes in this AttributeSource by calling
clear() on each Attribute implementation. | |||||||||||
Performs a clone of all
AttributeImpl instances returned in a new
AttributeSource instance. | |||||||||||
The caller must pass in a Class<? extends Attribute> value.
| |||||||||||
Returns a new iterator that iterates the attribute classes
in the same order they were added in.
| |||||||||||
returns the used AttributeFactory.
| |||||||||||
Returns a new iterator that iterates all unique Attribute implementations.
| |||||||||||
The caller must pass in a Class<? extends Attribute> value.
| |||||||||||
Returns true, iff this AttributeSource has any attributes
| |||||||||||
Restores this state by copying the values of all attribute implementations
that this state contains into the attributes implementations of the targetStream.
| |||||||||||
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
An AttributeSource using the default attribute factory DEFAULT_ATTRIBUTE_FACTORY
.
An AttributeSource that uses the same attributes as the supplied one.
An AttributeSource using the supplied AttributeSource.AttributeFactory
for creating new Attribute
instances.
The caller must pass in a Class<? extends Attribute> value. This method first checks if an instance of that class is already in this AttributeSource and returns it. Otherwise a new instance is created, added to this AttributeSource and returned.
Expert: Adds a custom AttributeImpl instance with one or more Attribute interfaces.
Please note: It is not guaranteed, that att
is added to
the AttributeSource
, because the provided attributes may already exist.
You should always retrieve the wanted attributes using getAttribute(Class)
after adding
with this method and cast to your class.
The recommended way to use custom implementations is using an AttributeSource.AttributeFactory
.
Captures the state of all Attributes. The return value can be passed to
restoreState(AttributeSource.State)
to restore the state of this or another AttributeSource.
Resets all Attributes in this AttributeSource by calling
clear()
on each Attribute implementation.
Performs a clone of all AttributeImpl
instances returned in a new
AttributeSource instance. This method can be used to e.g. create another TokenStream
with exactly the same attributes (using AttributeSource(AttributeSource)
)
The caller must pass in a Class<? extends Attribute> value. Returns the instance of the passed in Attribute contained in this AttributeSource
IllegalArgumentException | if this AttributeSource does not contain the
Attribute. It is recommended to always use addAttribute(Class) even in consumers
of TokenStreams, because you cannot know if a specific TokenStream really uses
a specific Attribute. addAttribute(Class) will automatically make the attribute
available. If you want to only use the attribute, if it is available (to optimize
consuming), use hasAttribute(Class extends Attribute>) .
|
---|
Returns a new iterator that iterates the attribute classes in the same order they were added in.
Returns a new iterator that iterates all unique Attribute implementations.
This iterator may contain less entries that getAttributeClassesIterator()
,
if one instance implements more than one Attribute interface.
The caller must pass in a Class<? extends Attribute> value. Returns true, iff this AttributeSource contains the passed-in Attribute.
Returns true, iff this AttributeSource has any attributes
Restores this state by copying the values of all attribute implementations that this state contains into the attributes implementations of the targetStream. The targetStream must contain a corresponding instance for each argument contained in this state (e.g. it is not possible to restore the state of an AttributeSource containing a TermAttribute into a AttributeSource using a Token instance as implementation).
Note that this method does not affect attributes of the targetStream
that are not contained in this state. In other words, if for example
the targetStream contains an OffsetAttribute, but this state doesn't, then
the value of the OffsetAttribute remains unchanged. It might be desirable to
reset its value to the default, in which case the caller should first
call clearAttributes()
on the targetStream.