public class AttributeSource extends Object
AttributeImpls,
 and methods to add and get them. There can only be a single instance
 of an attribute in the same AttributeSource instance. This is ensured
 by passing in the actual type of the Attribute (Class<Attribute>) to 
 the addAttribute(Class), which then checks if an instance of
 that type is already present. If yes, it returns the instance, otherwise
 it creates a new instance and returns it.| Modifier and Type | Class and Description | 
|---|---|
| static class  | AttributeSource.StateThis class holds the state of an AttributeSource. | 
| Constructor and Description | 
|---|
| AttributeSource()An AttributeSource using the default attribute factory  AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY. | 
| AttributeSource(AttributeFactory factory)An AttributeSource using the supplied  AttributeFactoryfor creating newAttributeinstances. | 
| AttributeSource(AttributeSource input)An AttributeSource that uses the same attributes as the supplied one. | 
| Modifier and Type | Method and Description | 
|---|---|
| <T extends Attribute> | addAttribute(Class<T> attClass)The caller must pass in a Class<? extends Attribute> value. | 
| void | addAttributeImpl(AttributeImpl att)Expert: Adds a custom AttributeImpl instance with one or more Attribute interfaces. | 
| AttributeSource.State | captureState()Captures the state of all Attributes. | 
| void | clearAttributes()Resets all Attributes in this AttributeSource by calling
  AttributeImpl.clear()on each Attribute implementation. | 
| AttributeSource | cloneAttributes()Performs a clone of all  AttributeImplinstances returned in a newAttributeSourceinstance. | 
| void | copyTo(AttributeSource target)Copies the contents of this  AttributeSourceto the given targetAttributeSource. | 
| void | endAttributes()Resets all Attributes in this AttributeSource by calling
  AttributeImpl.end()on each Attribute implementation. | 
| boolean | equals(Object obj) | 
| <T extends Attribute> | getAttribute(Class<T> attClass)Returns the instance of the passed in Attribute contained in this AttributeSource | 
| Iterator<Class<? extends Attribute>> | getAttributeClassesIterator()Returns a new iterator that iterates the attribute classes
 in the same order they were added in. | 
| AttributeFactory | getAttributeFactory()returns the used AttributeFactory. | 
| Iterator<AttributeImpl> | getAttributeImplsIterator()Returns a new iterator that iterates all unique Attribute implementations. | 
| boolean | hasAttribute(Class<? extends Attribute> attClass)The caller must pass in a Class<? extends Attribute> value. | 
| boolean | hasAttributes()Returns true, iff this AttributeSource has any attributes | 
| int | hashCode() | 
| String | reflectAsString(boolean prependAttClass)This method returns the current attribute values as a string in the following format
 by calling the  reflectWith(AttributeReflector)method:
 
 
 iffprependAttClass=true:"AttributeClass#key=value,AttributeClass#key=value"iffprependAttClass=false:"key=value,key=value" | 
| void | reflectWith(AttributeReflector reflector)This method is for introspection of attributes, it should simply
 add the key/values this AttributeSource holds to the given  AttributeReflector. | 
| void | removeAllAttributes()Removes all attributes and their implementations from this AttributeSource. | 
| void | restoreState(AttributeSource.State state)Restores this state by copying the values of all attribute implementations
 that this state contains into the attributes implementations of the targetStream. | 
| String | toString()Returns a string consisting of the class's simple name, the hex representation of the identity hash code,
 and the current reflection of all attributes. | 
public AttributeSource()
AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY.public AttributeSource(AttributeSource input)
public AttributeSource(AttributeFactory factory)
AttributeFactory for creating new Attribute instances.public final AttributeFactory getAttributeFactory()
public final Iterator<Class<? extends Attribute>> getAttributeClassesIterator()
public final Iterator<AttributeImpl> getAttributeImplsIterator()
getAttributeClassesIterator(),
 if one instance implements more than one Attribute interface.public final void addAttributeImpl(AttributeImpl att)
NOTE: It is not guaranteed, that att is added to
 the AttributeSource, because the provided attributes may already exist.
 You should always retrieve the wanted attributes using getAttribute(java.lang.Class<T>) after adding
 with this method and cast to your class.
 The recommended way to use custom implementations is using an AttributeFactory.
 
public final <T extends Attribute> T addAttribute(Class<T> attClass)
public final boolean hasAttributes()
public final boolean hasAttribute(Class<? extends Attribute> attClass)
public final <T extends Attribute> T getAttribute(Class<T> attClass)
The caller must pass in a Class<? extends Attribute> value.
null if this AttributeSource 
         does not contain the Attribute. It is recommended to always use 
         addAttribute(java.lang.Class<T>) even in consumers  of TokenStreams, because you cannot 
         know if a specific TokenStream really uses a specific Attribute. 
         addAttribute(java.lang.Class<T>) will automatically make the attribute available. 
         If you want to only use the attribute, if it is available (to optimize
         consuming), use hasAttribute(java.lang.Class<? extends org.apache.lucene.util.Attribute>).public final void clearAttributes()
AttributeImpl.clear() on each Attribute implementation.public final void endAttributes()
AttributeImpl.end() on each Attribute implementation.public final void removeAllAttributes()
public final AttributeSource.State captureState()
restoreState(org.apache.lucene.util.AttributeSource.State) to restore the state of this or another AttributeSource.public final void restoreState(AttributeSource.State state)
 Note that this method does not affect attributes of the targetStream
 that are not contained in this state. In other words, if for example
 the targetStream contains an OffsetAttribute, but this state doesn't, then
 the value of the OffsetAttribute remains unchanged. It might be desirable to
 reset its value to the default, in which case the caller should first
 call clearAttributes() on the targetStream.
public final String reflectAsString(boolean prependAttClass)
reflectWith(AttributeReflector) method:
 
 prependAttClass=true: "AttributeClass#key=value,AttributeClass#key=value"
 prependAttClass=false: "key=value,key=value"
 reflectWith(AttributeReflector)public final void reflectWith(AttributeReflector reflector)
AttributeReflector.
 This method iterates over all Attribute implementations and calls the
 corresponding AttributeImpl.reflectWith(org.apache.lucene.util.AttributeReflector) method.
public final AttributeSource cloneAttributes()
AttributeImpl instances returned in a new
 AttributeSource instance. This method can be used to e.g. create another TokenStream
 with exactly the same attributes (using AttributeSource(AttributeSource)).
 You can also use it as a (non-performant) replacement for captureState(), if you need to look
 into / modify the captured state.public final void copyTo(AttributeSource target)
AttributeSource to the given target AttributeSource.
 The given instance has to provide all Attributes this instance contains. 
 The actual attribute implementations must be identical in both AttributeSource instances;
 ideally both AttributeSource instances should use the same AttributeFactory.
 You can use this method as a replacement for restoreState(org.apache.lucene.util.AttributeSource.State), if you use
 cloneAttributes() instead of captureState().public String toString()
toString in class ObjectreflectAsString(boolean)Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.