Class AttributeImpl

java.lang.Object
org.apache.lucene.util.AttributeImpl
All Implemented Interfaces:
Cloneable, Attribute
Direct Known Subclasses:
BoostAttributeImpl, BytesTermAttributeImpl, CharTermAttributeImpl, FlagsAttributeImpl, KeywordAttributeImpl, MaxNonCompetitiveBoostAttributeImpl, OffsetAttributeImpl, PayloadAttributeImpl, PositionIncrementAttributeImpl, PositionLengthAttributeImpl, TermFrequencyAttributeImpl, 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.

All implementations must list all implemented Attribute interfaces in their implements clause. AttributeSource reflectively identifies all attributes and makes them available to consumers like TokenStreams.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
    Clears the values in this AttributeImpl and resets it to its default value.
    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
    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 the reflectWith(AttributeReflector) method: iff prependAttClass=true: "AttributeClass#key=value,AttributeClass#key=value" iff prependAttClass=false: "key=value,key=value"
    abstract void
    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 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

      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:
      • iff prependAttClass=true: "AttributeClass#key=value,AttributeClass#key=value"
      • iff prependAttClass=false: "key=value,key=value"
      See Also:
    • reflectWith

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

      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!

      See Also:
    • 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()
      In most cases the clone is, and should be, deep in order to be able to properly capture the state of all attributes.
      Overrides:
      clone in class Object