Class CharTermAttributeImpl

java.lang.Object
org.apache.lucene.util.AttributeImpl
org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl
All Implemented Interfaces:
Appendable, CharSequence, Cloneable, CharTermAttribute, TermToBytesRefAttribute, Attribute
Direct Known Subclasses:
PackedTokenAttributeImpl

public class CharTermAttributeImpl extends AttributeImpl implements CharTermAttribute, TermToBytesRefAttribute
Default implementation of CharTermAttribute.
  • Field Details

    • builder

      protected BytesRefBuilder builder
      May be used by subclasses to convert to different charsets / encodings for implementing getBytesRef().
  • Constructor Details

    • CharTermAttributeImpl

      public CharTermAttributeImpl()
      Initialize this attribute with empty term text
  • Method Details

    • copyBuffer

      public final void copyBuffer(char[] buffer, int offset, int length)
      Description copied from interface: CharTermAttribute
      Copies the contents of buffer, starting at offset for length characters, into the termBuffer array.
      Specified by:
      copyBuffer in interface CharTermAttribute
      Parameters:
      buffer - the buffer to copy
      offset - the index in the buffer of the first character to copy
      length - the number of characters to copy
    • buffer

      public final char[] buffer()
      Description copied from interface: CharTermAttribute
      Returns the internal termBuffer character array which you can then directly alter. If the array is too small for your token, use CharTermAttribute.resizeBuffer(int) to increase it. After altering the buffer be sure to call CharTermAttribute.setLength(int) to record the number of valid characters that were placed into the termBuffer.

      NOTE: The returned buffer may be larger than the valid CharSequence.length().

      Specified by:
      buffer in interface CharTermAttribute
    • resizeBuffer

      public final char[] resizeBuffer(int newSize)
      Description copied from interface: CharTermAttribute
      Grows the termBuffer to at least size newSize, preserving the existing content.
      Specified by:
      resizeBuffer in interface CharTermAttribute
      Parameters:
      newSize - minimum size of the new termBuffer
      Returns:
      newly created termBuffer with length >= newSize
    • setLength

      public final CharTermAttribute setLength(int length)
      Description copied from interface: CharTermAttribute
      Set number of valid characters (length of the term) in the termBuffer array. Use this to truncate the termBuffer or to synchronize with external manipulation of the termBuffer. Note: to grow the size of the array, use CharTermAttribute.resizeBuffer(int) first.
      Specified by:
      setLength in interface CharTermAttribute
      Parameters:
      length - the truncated length
    • setEmpty

      public final CharTermAttribute setEmpty()
      Description copied from interface: CharTermAttribute
      Sets the length of the termBuffer to zero. Use this method before appending contents using the Appendable interface.
      Specified by:
      setEmpty in interface CharTermAttribute
    • getBytesRef

      public BytesRef getBytesRef()
      Description copied from interface: TermToBytesRefAttribute
      Retrieve this attribute's BytesRef. The bytes are updated from the current term. The implementation may return a new instance or keep the previous one.
      Specified by:
      getBytesRef in interface TermToBytesRefAttribute
      Returns:
      a BytesRef to be indexed (only stays valid until token stream gets incremented)
    • length

      public final int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public final char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public final CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • append

      public final CharTermAttribute append(CharSequence csq)
      Specified by:
      append in interface Appendable
      Specified by:
      append in interface CharTermAttribute
    • append

      public final CharTermAttribute append(CharSequence csq, int start, int end)
      Specified by:
      append in interface Appendable
      Specified by:
      append in interface CharTermAttribute
    • append

      public final CharTermAttribute append(char c)
      Specified by:
      append in interface Appendable
      Specified by:
      append in interface CharTermAttribute
    • append

      public final CharTermAttribute append(String s)
      Description copied from interface: CharTermAttribute
      Appends the specified String to this character sequence.

      The characters of the String argument are appended, in order, increasing the length of this sequence by the length of the argument. If argument is null, then the four characters "null" are appended.

      Specified by:
      append in interface CharTermAttribute
    • append

      public final CharTermAttribute append(StringBuilder s)
      Description copied from interface: CharTermAttribute
      Appends the specified StringBuilder to this character sequence.

      The characters of the StringBuilder argument are appended, in order, increasing the length of this sequence by the length of the argument. If argument is null, then the four characters "null" are appended.

      Specified by:
      append in interface CharTermAttribute
    • append

      public final CharTermAttribute append(CharTermAttribute ta)
      Description copied from interface: CharTermAttribute
      Appends the contents of the other CharTermAttribute to this character sequence.

      The characters of the CharTermAttribute argument are appended, in order, increasing the length of this sequence by the length of the argument. If argument is null, then the four characters "null" are appended.

      Specified by:
      append in interface CharTermAttribute
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • clear

      public void clear()
      Description copied from class: AttributeImpl
      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.
      Specified by:
      clear in class AttributeImpl
    • clone

      public CharTermAttributeImpl clone()
      Description copied from class: AttributeImpl
      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 AttributeImpl
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Returns solely the term text as specified by the CharSequence interface.
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • reflectWith

      public void reflectWith(AttributeReflector reflector)
      Description copied from class: AttributeImpl
      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!

      Specified by:
      reflectWith in class AttributeImpl
      See Also:
    • copyTo

      public void copyTo(AttributeImpl target)
      Description copied from class: AttributeImpl
      Copies the values from this Attribute into the passed-in target attribute. The target implementation must support all the Attributes this implementation supports.
      Specified by:
      copyTo in class AttributeImpl