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-2017 Apache Software Foundation. All Rights Reserved.