Add AttributeSource.copyTo(AttributeSource)
-------------------------------------------

                 Key: LUCENE-2314
                 URL: https://issues.apache.org/jira/browse/LUCENE-2314
             Project: Lucene - Java
          Issue Type: Improvement
            Reporter: Uwe Schindler
            Assignee: Uwe Schindler
            Priority: Minor
             Fix For: 3.1


One problem with AttributeSource at the moment is the missing "insight" into 
AttributeSource.State. If you want to create TokenStreams that inspect cpatured 
states, you have no chance. Making the contents of State public is a bad idea, 
as it does not help for inspecting (its a linked list, so you have to iterate).

AttributeSource currently contains a cloneAttributes() call, which returns a 
new AttrubuteSource with all current attributes cloned. This is the (more 
expensive) captureState. The problem is that you cannot copy back the cloned AS 
(which is the restoreState). To use this behaviour (by the way, ShingleMatrix 
can use it), one can alternatively use cloneAttributes and copyTo. You can 
easily change the cloned attributes and store them in lists and copy them back. 
The only problem is lower performance of these calls (as State is a very 
optimized class).

One use case could be:
{code}
AttributeSource state = cloneAttributes();
// .... do something ...
state.getAttribute(TermAttribute.class).setTermBuffer(foobar);
// ... more work
state.copyTo(this);
{code}

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