[ https://issues.apache.org/jira/browse/LUCENE-778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12479861 ]
Nicolas Lalevée commented on LUCENE-778: ---------------------------------------- Rethinking about the function "public void document(int n, Document doc)", in fact it will completely break the work I have done for LUCENE-662. And finally, I agree with you Hoss. Two different interfaces, and let the user implement the document he wants. As a first step, the user will decorate his document. And in a second time, Lucene could provide the user the possibility to have his own DocumentFactory. > Allow overriding a Document > --------------------------- > > Key: LUCENE-778 > URL: https://issues.apache.org/jira/browse/LUCENE-778 > Project: Lucene - Java > Issue Type: New Feature > Affects Versions: 2.0.0 > Reporter: Nicolas Lalevée > Priority: Trivial > > In our application, we have some kind of generic API that is handling how we > are using Lucene. The different other applications are using this API with > different semantics, and are using the Lucene fields quite differently. We > wrote some usefull functions to do this mapping. Today, as the Document class > cannot be overriden, we are obliged to make a document wrapper by > application, ie some MyAppDocument and MyOtherAppDocument which have a > property holding a real Lucene Document. Then, when MyApp or MyOtherApp want > to use our generic lucene API, we have to "get out" the Lucene document, ie > do some genericLuceneAPI.writeDoc(myAppDoc.getLuceneDocument()). This work > fine, but it becomes quite tricky to use the other function of our generic > API which is genericLuceneAPI.writeDocs(Collection<Document> docs). > I don't know the rational behind making final Document, but removing it will > allow more object-oriented 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]