org.apache.lucene.analysis.tokenattributes

## Class PayloadAttributeImpl

- java.lang.Object
- - org.apache.lucene.util.AttributeImpl
  - - org.apache.lucene.analysis.tokenattributes.PayloadAttributeImpl

All Implemented Interfaces:
  Cloneable, PayloadAttribute, Attribute

    public class PayloadAttributeImpl
    extends AttributeImpl
    implements PayloadAttribute, Cloneable

Default implementation of `PayloadAttribute`.

### Constructor Summary

Constructors
Constructor and Description
`PayloadAttributeImpl()` Initialize this attribute with no payload.
`PayloadAttributeImpl(BytesRef payload)` Initialize this attribute with the given payload.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `clear()` Clears the values in this AttributeImpl and resets it to its default value.
`PayloadAttributeImpl` `clone()` In most cases the clone is, and should be, deep in order to be able to properly capture the state of all attributes.
`void` `copyTo(AttributeImpl target)` Copies the values from this Attribute into the passed-in target attribute.
`boolean` `equals(Object other)`
`BytesRef` `getPayload()` Returns this Token's payload.
`int` `hashCode()`
`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` `setPayload(BytesRef payload)` Sets this Token's payload.

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

`end, reflectAsString`

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

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

### Constructor Detail

#### PayloadAttributeImpl

    public PayloadAttributeImpl()

Initialize this attribute with no payload.

#### PayloadAttributeImpl

    public PayloadAttributeImpl(BytesRef payload)

Initialize this attribute with the given payload.

### Method Detail

#### getPayload

    public BytesRef getPayload()

Description copied from interface: `PayloadAttribute`
Returns this Token's payload.

Specified by:
  `getPayload` in interface `PayloadAttribute`
See Also:
  `PayloadAttribute.setPayload(BytesRef)`

#### setPayload

    public void setPayload(BytesRef payload)

Description copied from interface: `PayloadAttribute`
Sets this Token's payload.

Specified by:
  `setPayload` in interface `PayloadAttribute`
See Also:
  `PayloadAttribute.getPayload()`

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

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

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

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