Package org.apache.lucene.analysis.tokenattributes

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected BytesRefBuilder`
  `builder`
  May be used by subclasses to convert to different charsets / encodings for implementing `getBytesRef()`.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CharTermAttributeImpl()`
  Initialize this attribute with empty term text

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final CharTermAttribute`
  `append(char c)`
  `final CharTermAttribute`
  `append(CharSequence csq)`
  `final CharTermAttribute`
  `append(CharSequence csq, int start, int end)`
  `final CharTermAttribute`
  `append(String s)`
  Appends the specified `String` to this character sequence.
  `final CharTermAttribute`
  `append(StringBuilder s)`
  Appends the specified `StringBuilder` to this character sequence.
  `final CharTermAttribute`
  `append(CharTermAttribute ta)`
  Appends the contents of the other `CharTermAttribute` to this character sequence.
  `final char[]`
  `buffer()`
  Returns the internal termBuffer character array which you can then directly alter.
  `final char`
  `charAt(int index)`
  `void`
  `clear()`
  Clears the values in this AttributeImpl and resets it to its default value.
  `CharTermAttributeImpl`
  `clone()`
  In most cases the clone is, and should be, deep in order to be able to properly capture the state of all attributes.
  `final void`
  `copyBuffer(char[] buffer, int offset, int length)`
  Copies the contents of buffer, starting at offset for length characters, into the termBuffer array.
  `void`
  `copyTo(AttributeImpl target)`
  Copies the values from this Attribute into the passed-in target attribute.
  `boolean`
  `equals(Object other)`
  `BytesRef`
  `getBytesRef()`
  Retrieve this attribute's BytesRef.
  `int`
  `hashCode()`
  `final int`
  `length()`
  `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`.
  `final char[]`
  `resizeBuffer(int newSize)`
  Grows the termBuffer to at least size newSize, preserving the existing content.
  `final CharTermAttribute`
  `setEmpty()`
  Sets the length of the termBuffer to zero.
  `final CharTermAttribute`
  `setLength(int length)`
  Set number of valid characters (length of the term) in the termBuffer array.
  `final CharSequence`
  `subSequence(int start, int end)`
  `String`
  `toString()`
  Returns solely the term text as specified by the `CharSequence` interface.

  ### Methods inherited from class org.apache.lucene.util.AttributeImpl

  `end, reflectAsString`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface java.lang.CharSequence

  `chars, codePoints, isEmpty`

- ## 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:
      - `AttributeImpl.reflectAsString(boolean)`

  - ### 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`