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. | 
| String | reflectAsString(boolean prependAttClass)This method returns the current attribute values as a string in the following format
 by calling the  reflectWith(AttributeReflector)method:
 
 
 iffprependAttClass=true:"AttributeClass#key=value,AttributeClass#key=value"iffprependAttClass=false:"key=value,key=value" | 
| 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 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 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!
 
Important for migration to Lucene 6: The default implementation is
 implemented for backwards compatibility in Lucene 5 and calls
 AttributeReflector.reflect(java.lang.Class<? extends org.apache.lucene.util.Attribute>, java.lang.String, java.lang.Object) for all non-static fields from the implementing
 class, using the field name as key and the field value as value. The Attribute class
 is also determined by reflection. Please note that the default implementation can
 only handle single-Attribute implementations.
 
 
Please don't use the default implementation anymore, because it will be made abstract in Lucene 6! See above for implementation example.
reflectAsString(boolean)public abstract void copyTo(AttributeImpl target)
public AttributeImpl clone()
Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.