org.apache.lucene.analysis
Class NumericTokenStream.NumericTermAttributeImpl

java.lang.Object
  extended by org.apache.lucene.util.AttributeImpl
      extended by org.apache.lucene.analysis.NumericTokenStream.NumericTermAttributeImpl
All Implemented Interfaces:
Cloneable, NumericTokenStream.NumericTermAttribute, TermToBytesRefAttribute, Attribute
Enclosing class:
NumericTokenStream

public static final class NumericTokenStream.NumericTermAttributeImpl
extends AttributeImpl
implements NumericTokenStream.NumericTermAttribute, TermToBytesRefAttribute

Implementation of NumericTokenStream.NumericTermAttribute.

Since:
4.0
NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

Constructor Summary
NumericTokenStream.NumericTermAttributeImpl()
          Creates, but does not yet initialize this attribute instance
 
Method Summary
 void clear()
          Clears the values in this AttributeImpl and resets it to its default value.
 void copyTo(AttributeImpl target)
          Copies the values from this Attribute into the passed-in target attribute.
 int fillBytesRef()
          Updates the bytes TermToBytesRefAttribute.getBytesRef() to contain this term's final encoding, and returns its hashcode.
 BytesRef getBytesRef()
          Retrieve this attribute's BytesRef.
 long getRawValue()
          Returns current token's raw value as long with all NumericTokenStream.NumericTermAttribute.getShift() applied, undefined before first token
 int getShift()
          Returns current shift value, undefined before first token
 int getValueSize()
          Returns value size in bits (32 for float, int; 64 for double, long)
 int incShift()
          Don't call this method!
 void init(long value, int valueSize, int precisionStep, int shift)
          Don't call this method!
 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.
 void setShift(int shift)
          Don't call this method!
 
Methods inherited from class org.apache.lucene.util.AttributeImpl
clone, reflectAsString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NumericTokenStream.NumericTermAttributeImpl

public NumericTokenStream.NumericTermAttributeImpl()
Creates, but does not yet initialize this attribute instance

See Also:
init(long, int, int, int)
Method Detail

getBytesRef

public BytesRef getBytesRef()
Description copied from interface: TermToBytesRefAttribute
Retrieve this attribute's BytesRef. The bytes are updated from the current term when the consumer calls TermToBytesRefAttribute.fillBytesRef().

Specified by:
getBytesRef in interface TermToBytesRefAttribute
Returns:
this Attributes internal BytesRef.

fillBytesRef

public int fillBytesRef()
Description copied from interface: TermToBytesRefAttribute
Updates the bytes TermToBytesRefAttribute.getBytesRef() to contain this term's final encoding, and returns its hashcode.

Specified by:
fillBytesRef in interface TermToBytesRefAttribute
Returns:
the hashcode as defined by BytesRef.hashCode():
  int hash = 0;
  for (int i = termBytes.offset; i < termBytes.offset+termBytes.length; i++) {
    hash = 31*hash + termBytes.bytes[i];
  }
 
Implement this for performance reasons, if your code can calculate the hash on-the-fly. If this is not the case, just return termBytes.hashCode().

getShift

public int getShift()
Description copied from interface: NumericTokenStream.NumericTermAttribute
Returns current shift value, undefined before first token

Specified by:
getShift in interface NumericTokenStream.NumericTermAttribute

setShift

public void setShift(int shift)
Description copied from interface: NumericTokenStream.NumericTermAttribute
Don't call this method!

Specified by:
setShift in interface NumericTokenStream.NumericTermAttribute

incShift

public int incShift()
Description copied from interface: NumericTokenStream.NumericTermAttribute
Don't call this method!

Specified by:
incShift in interface NumericTokenStream.NumericTermAttribute

getRawValue

public long getRawValue()
Description copied from interface: NumericTokenStream.NumericTermAttribute
Returns current token's raw value as long with all NumericTokenStream.NumericTermAttribute.getShift() applied, undefined before first token

Specified by:
getRawValue in interface NumericTokenStream.NumericTermAttribute

getValueSize

public int getValueSize()
Description copied from interface: NumericTokenStream.NumericTermAttribute
Returns value size in bits (32 for float, int; 64 for double, long)

Specified by:
getValueSize in interface NumericTokenStream.NumericTermAttribute

init

public void init(long value,
                 int valueSize,
                 int precisionStep,
                 int shift)
Description copied from interface: NumericTokenStream.NumericTermAttribute
Don't call this method!

Specified by:
init in interface NumericTokenStream.NumericTermAttribute

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

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


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