public abstract class AttributeImpl extends Object implements Cloneable, Attribute
AttributeSource
.
Attributes are used to add data in a dynamic, yet type-safe way to a source
of usually streamed objects, e. g. a TokenStream
.
Constructor and Description |
---|
AttributeImpl() |
Modifier and Type | Method and Description |
---|---|
abstract void |
clear()
Clears the values in this AttributeImpl and resets it to its
default value.
|
AttributeImpl |
clone()
In most cases the clone is, and should be, deep in order to be able to
properly capture the state of all attributes.
|
abstract void |
copyTo(AttributeImpl target)
Copies the values from this Attribute into the passed-in
target attribute.
|
void |
end()
Clears the values in this AttributeImpl and resets it to its value
at the end of the field.
|
String |
reflectAsString(boolean prependAttClass)
This method returns the current attribute values as a string in the following format
by calling the
reflectWith(AttributeReflector) method:
iff prependAttClass=true : "AttributeClass#key=value,AttributeClass#key=value"
iff prependAttClass=false : "key=value,key=value"
|
abstract void |
reflectWith(AttributeReflector reflector)
This method is for introspection of attributes, it should simply
add the key/values this attribute holds to the given
AttributeReflector . |
public abstract void clear()
public void end()
The default implementation simply calls clear()
public final String reflectAsString(boolean prependAttClass)
reflectWith(AttributeReflector)
method:
prependAttClass=true
: "AttributeClass#key=value,AttributeClass#key=value"
prependAttClass=false
: "key=value,key=value"
reflectWith(AttributeReflector)
public abstract void reflectWith(AttributeReflector reflector)
AttributeReflector
.
Implementations look like this (e.g. for a combined attribute implementation):
public void reflectWith(AttributeReflector reflector) { reflector.reflect(CharTermAttribute.class, "term", term()); reflector.reflect(PositionIncrementAttribute.class, "positionIncrement", getPositionIncrement()); }
If you implement this method, make sure that for each invocation, the same set of Attribute
interfaces and keys are passed to AttributeReflector.reflect(java.lang.Class<? extends org.apache.lucene.util.Attribute>, java.lang.String, java.lang.Object)
in the same order, but possibly
different values. So don't automatically exclude e.g. null
properties!
reflectAsString(boolean)
public abstract void copyTo(AttributeImpl target)
public AttributeImpl clone()
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.