[ https://issues.apache.org/jira/browse/LUCENE-2314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12844868#action_12844868 ]
Shai Erera commented on LUCENE-2314: ------------------------------------ Minor comment - in copyTo, can you put state.attribute.getClass() in the message of the thrown exception, so whoever encounters it will know what's the invalid attribute? On a more general note, can State implement Iterable? > 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 > > Attachments: LUCENE-2314.patch > > > 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