[ 
https://issues.apache.org/jira/browse/LUCENE-3756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13203275#comment-13203275
 ] 

Shai Erera commented on LUCENE-3756:
------------------------------------

Mike, this is purely a style thing. You think that the code is not readable, I 
think that it is. If you want, we can ask Lucene committers not to chain lots 
of set() calls in one line, or format the code such that lines are not longer 
than 120 characters.

But if you change IWC's API contract, you force your preferred style on 
everyone. To that I cannot agree. There isn't any technical reason to force IWC 
to return void. If you think however (and that doesn't seem the case here) that 
any of the methods should return a different value, then that's a whole 
different story.

IMO, if a class returns void in all its methods, and it is a configuration 
class, it should be a builder. It's for convenience. When I want, I chain set() 
calls. Sometimes I have mixed code, when I want to document the reason for a 
specific set() call. The point is that I have the *freedom* to decide how to 
use the class.
                
> Don't allow IndexWriterConfig setters to chain
> ----------------------------------------------
>
>                 Key: LUCENE-3756
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3756
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>
> Spinoff from LUCENE-3736.
> I don't like that IndexWriterConfig's setters are chainable; it
> results in code in our tests like this:
> {noformat}
> IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig( 
> TEST_VERSION_CURRENT, new 
> MockAnalyzer(random)).setMaxBufferedDocs(2).setMergePolicy(newLogMergePolicy()));
> {noformat}
> I think in general we should avoid chaining since it encourages hard
> to read code (code is already hard enough to read!).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to