org.apache.lucene.util
Class AttributeImpl

java.lang.Object
  extended by org.apache.lucene.util.AttributeImpl
All Implemented Interfaces:
Cloneable, Attribute
Direct Known Subclasses:
BoostAttributeImpl, CharTermAttributeImpl, FlagsAttributeImpl, FuzzyTermsEnum.LevenshteinAutomataAttributeImpl, KeywordAttributeImpl, MaxNonCompetitiveBoostAttributeImpl, NumericTokenStream.NumericTermAttributeImpl, OffsetAttributeImpl, PayloadAttributeImpl, PositionIncrementAttributeImpl, PositionLengthAttributeImpl, TypeAttributeImpl

public abstract class AttributeImpl
extends Object
implements Cloneable, Attribute

Base class for Attributes that can be added to a 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 Summary
AttributeImpl()
           
 
Method Summary
abstract  void clear()
          Clears the values in this AttributeImpl and resets it to its default value.
 AttributeImpl clone()
          Shallow clone.
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: iff prependAttClass=true: "AttributeClass#key=value,AttributeClass#key=value" iff prependAttClass=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.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AttributeImpl

public AttributeImpl()
Method Detail

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.


reflectAsString

public final String reflectAsString(boolean prependAttClass)
This method returns the current attribute values as a string in the following format by calling the reflectWith(AttributeReflector) method:

See Also:
reflectWith(AttributeReflector)

reflectWith

public 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.

The default implementation calls AttributeReflector.reflect(java.lang.Class, 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.

Custom 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, 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:
reflectAsString(boolean)

copyTo

public abstract void copyTo(AttributeImpl target)
Copies the values from this Attribute into the passed-in target attribute. The target implementation must support all the Attributes this implementation supports.


clone

public AttributeImpl clone()
Shallow clone. Subclasses must override this if they need to clone any members deeply,

Overrides:
clone in class Object


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.