org.apache.lucene.analysis.tokenattributes
Class CharTermAttributeImpl

java.lang.Object
  extended by org.apache.lucene.util.AttributeImpl
      extended by org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl
All Implemented Interfaces:
Serializable, Appendable, CharSequence, Cloneable, CharTermAttribute, TermAttribute, Attribute
Direct Known Subclasses:
TermAttributeImpl

public class CharTermAttributeImpl
extends AttributeImpl
implements CharTermAttribute, TermAttribute, Cloneable, Serializable

The term text of a Token.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.lucene.util.AttributeImpl
enableBackwards
 
Constructor Summary
CharTermAttributeImpl()
           
 
Method Summary
 CharTermAttribute append(char c)
           
 CharTermAttribute append(CharSequence csq)
           
 CharTermAttribute append(CharSequence csq, int start, int end)
           
 CharTermAttribute append(CharTermAttribute ta)
          Appends the contents of the other CharTermAttribute to this character sequence.
 CharTermAttribute append(String s)
          Appends the specified String to this character sequence.
 CharTermAttribute append(StringBuilder s)
          Appends the specified StringBuilder to this character sequence.
 char[] buffer()
          Returns the internal termBuffer character array which you can then directly alter.
 char charAt(int index)
           
 void clear()
          Clears the values in this AttributeImpl and resets it to its default value.
 Object clone()
          Shallow clone.
 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)
           
 int hashCode()
           
 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.
 char[] resizeBuffer(int newSize)
          Grows the termBuffer to at least size newSize, preserving the existing content.
 char[] resizeTermBuffer(int newSize)
          Deprecated. 
 CharTermAttribute setEmpty()
          Sets the length of the termBuffer to zero.
 CharTermAttribute setLength(int length)
          Set number of valid characters (length of the term) in the termBuffer array.
 void setTermBuffer(char[] buffer, int offset, int length)
          Deprecated. 
 void setTermBuffer(String buffer)
          Deprecated. 
 void setTermBuffer(String buffer, int offset, int length)
          Deprecated. 
 void setTermLength(int length)
          Deprecated. 
 CharSequence subSequence(int start, int end)
           
 String term()
          Deprecated. 
 char[] termBuffer()
          Deprecated. 
 int termLength()
          Deprecated. 
 String toString()
          Returns solely the term text as specified by the CharSequence interface.
 
Methods inherited from class org.apache.lucene.util.AttributeImpl
reflectAsString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CharTermAttributeImpl

public CharTermAttributeImpl()
Method Detail

term

@Deprecated
public String term()
Deprecated. 

Description copied from interface: TermAttribute
Returns the Token's term text. This method has a performance penalty because the text is stored internally in a char[]. If possible, use TermAttribute.termBuffer() and TermAttribute.termLength() directly instead. If you really need a String, use this method, which is nothing more than a convenience call to new String(token.termBuffer(), 0, token.termLength())

Specified by:
term in interface TermAttribute

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

setTermBuffer

@Deprecated
public void setTermBuffer(char[] buffer,
                                     int offset,
                                     int length)
Deprecated. 

Description copied from interface: TermAttribute
Copies the contents of buffer, starting at offset for length characters, into the termBuffer array.

Specified by:
setTermBuffer in interface TermAttribute
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

setTermBuffer

@Deprecated
public void setTermBuffer(String buffer)
Deprecated. 

Description copied from interface: TermAttribute
Copies the contents of buffer into the termBuffer array.

Specified by:
setTermBuffer in interface TermAttribute
Parameters:
buffer - the buffer to copy

setTermBuffer

@Deprecated
public void setTermBuffer(String buffer,
                                     int offset,
                                     int length)
Deprecated. 

Description copied from interface: TermAttribute
Copies the contents of buffer, starting at offset and continuing for length characters, into the termBuffer array.

Specified by:
setTermBuffer in interface TermAttribute
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.

Specified by:
buffer in interface CharTermAttribute

termBuffer

@Deprecated
public char[] termBuffer()
Deprecated. 

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

Specified by:
termBuffer in interface TermAttribute

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

resizeTermBuffer

@Deprecated
public char[] resizeTermBuffer(int newSize)
Deprecated. 

Description copied from interface: TermAttribute
Grows the termBuffer to at least size newSize, preserving the existing content. Note: If the next operation is to change the contents of the term buffer use TermAttribute.setTermBuffer(char[], int, int), TermAttribute.setTermBuffer(String), or TermAttribute.setTermBuffer(String, int, int) to optimally combine the resize with the setting of the termBuffer.

Specified by:
resizeTermBuffer in interface TermAttribute
Parameters:
newSize - minimum size of the new termBuffer
Returns:
newly created termBuffer with length >= newSize

termLength

@Deprecated
public int termLength()
Deprecated. 

Description copied from interface: TermAttribute
Return number of valid characters (length of the term) in the termBuffer array.

Specified by:
termLength in interface TermAttribute

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

setTermLength

@Deprecated
public void setTermLength(int length)
Deprecated. 

Description copied from interface: TermAttribute
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 TermAttribute.resizeTermBuffer(int) first.

Specified by:
setTermLength in interface TermAttribute
Parameters:
length - the truncated length

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 Object clone()
Description copied from class: AttributeImpl
Shallow clone. Subclasses must override this if they need to clone any members deeply,

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.

This method changed the behavior with Lucene 3.1, before it returned a String representation of the whole term with all attributes. This affects especially the Token subclass.

Specified by:
toString in interface CharSequence
Overrides:
toString in class AttributeImpl

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.

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!

Overrides:
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