Class AttributeImpl
- Direct Known Subclasses:
BoostAttributeImpl
,BytesTermAttributeImpl
,CharTermAttributeImpl
,FlagsAttributeImpl
,KeywordAttributeImpl
,MaxNonCompetitiveBoostAttributeImpl
,OffsetAttributeImpl
,PayloadAttributeImpl
,PositionIncrementAttributeImpl
,PositionLengthAttributeImpl
,TermFrequencyAttributeImpl
,TypeAttributeImpl
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
.
All implementations must list all implemented Attribute
interfaces in their
implements
clause. AttributeSource
reflectively identifies all attributes and makes them
available to consumers like TokenStream
s.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract void
clear()
Clears the values in this AttributeImpl and resets it to its default value.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.final String
reflectAsString
(boolean prependAttClass) This method returns the current attribute values as a string in the following format by calling thereflectWith(AttributeReflector)
method: iffprependAttClass=true
:"AttributeClass#key=value,AttributeClass#key=value"
iffprependAttClass=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 givenAttributeReflector
.
-
Constructor Details
-
AttributeImpl
public AttributeImpl()
-
-
Method Details
-
clear
public abstract void clear()Clears the values in this AttributeImpl and resets it to its default value. If this implementation implements more than one Attribute interface it clears all. -
end
public void end()Clears the values in this AttributeImpl and resets it to its value at the end of the field. If this implementation implements more than one Attribute interface it clears all.The default implementation simply calls
clear()
-
reflectAsString
This method returns the current attribute values as a string in the following format by calling thereflectWith(AttributeReflector)
method:- iff
prependAttClass=true
:"AttributeClass#key=value,AttributeClass#key=value"
- iff
prependAttClass=false
:"key=value,key=value"
- See Also:
- iff
-
reflectWith
This method is for introspection of attributes, it should simply add the key/values this attribute holds to the givenAttributeReflector
.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 toAttributeReflector.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!- See Also:
-
copyTo
Copies the values from this Attribute into the passed-in target attribute. The target implementation must support all the Attributes this implementation supports. -
clone
In most cases the clone is, and should be, deep in order to be able to properly capture the state of all attributes.
-