Add reset(AttributeSource) method to AttributeSource
----------------------------------------------------

                 Key: LUCENE-1842
                 URL: https://issues.apache.org/jira/browse/LUCENE-1842
             Project: Lucene - Java
          Issue Type: Wish
          Components: Analysis
            Reporter: Tim Smith
             Fix For: 2.9


Originally proposed in LUCENE-1826

Proposing the addition of the following method to AttributeSource
{code}
public void reset(AttributeSource input) {
    if (input == null) {
      throw new IllegalArgumentException("input AttributeSource must not be 
null");
    }
    this.attributes = input.attributes;
    this.attributeImpls = input.attributeImpls;
    this.factory = input.factory;
}
{code}

Impacts:
* requires all TokenStreams/TokenFIlters/etc to call addAttribute() in their 
reset() method, not in their constructor
* requires making AttributeSource.attributes and AttributeSource.attributesImpl 
non-final

Advantages:
Allows creating only a single actual AttributeSource per thread that can then 
be used for indexing with a multitude of TokenStream/Tokenizer combinations 
(allowing utmost reuse of TokenStream/Tokenizer instances)
this results in only a single "attributes"/"attributesImpl" map being required 
per thread
addAttribute() calls will almost always return right away (will only be 
"initialized" once per thread)







-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to