[ 
https://issues.apache.org/jira/browse/IO-119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12567503#action_12567503
 ] 

Gary Gregory commented on IO-119:
---------------------------------

I know I am jumping in the middle here, but I must say that I do not agree with 
last comment. Well, this style is optional since you do not have to cascade 
method invocations like this, so I'm just stating this for discussion. 

IMO, an API should not be designed for typing convenience. When I think about 
code and its life cycle, I think about clarity. I think code should express 
ideas as clearly as possible, whether or not this expression is succinct does 
not matter to me. 

The amount of time spent by one person witting new code is minuscule compared 
the amount of time that will be spent by many people over the months and years 
of that code's lifetime. So I rarely use cascading method invocation, since 
it's never clear (unlike in Smalltalk) who the receiver of the method really 
is. IDE code formatters also do not know that something is a 'builder' and 
usually mess up all of that careful spacing.

> Convenience "Builder" for creating complex FileFilter conditions
> ----------------------------------------------------------------
>
>                 Key: IO-119
>                 URL: https://issues.apache.org/jira/browse/IO-119
>             Project: Commons IO
>          Issue Type: Improvement
>          Components: Filters
>    Affects Versions: 1.3.1
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>            Priority: Minor
>             Fix For: 2.x
>
>         Attachments: FileFilterBuilder.java, FileFilterBuilderTestCase.java
>
>
> I'd like to add a new convenience "builder" class (FileFilterBuilder) to make 
> it easier to create complex FileFilter using Commons IO's IOFileFilter 
> implementations.
> Heres an example of how it can be used to create a IOFileFilter for the 
> following conditions:
>  - Either, directories which are not hidden and not named ".svn"
>  - or, files which have a suffix of ".java"
>     IOFileFilter filter = FileFilterBuilder.orBuilder()
>         .and().isDirectory().isHidden(false).not().name(".svn").end()
>         .and().isFile().suffix(".java").end()
>         .getFileFilter();

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

Reply via email to