Erik created COLLECTIONS-530:
--------------------------------
Summary: Rejecting items on predicate failure without throwing an
Exception
Key: COLLECTIONS-530
URL: https://issues.apache.org/jira/browse/COLLECTIONS-530
Project: Commons Collections
Issue Type: Improvement
Components: List
Affects Versions: 4.0
Reporter: Erik
The PredicatedList class doesn't allow entries that fail the predicate, but
throws an Exception on entry.
The problem I have with this, is that it places the onus of filtering out
invalid entries on the caller.
I typically add items in a loop. The item added is the result of a method call
(which returns null if it can't create one).
This problem is so common for me that I have created my own FilteredList class
that simply ignores invalid entries.
I would like the PredicatedList class to be capable of rejecting items without
throwing an exception.
I don't mind writing the code for this, but there are a great many ways in
which this can be done.
So I was wondering what the interface should look like.
Separate FilteredList class.
Works, but seems a little verbose for the purpose
New factory method: filteredList(List<T> list, Predicate<? super T> predicate)
Nice and simple, but doesn't allow extension; other ways of dealing with
predicate failure.
New factory method with enum: predicatedList(List<T> list, Predicate<? super T>
predicate, PredicateFailEnum action)
More verbose to use and adds an extra class, but allows more alternative ways
to deal with predicate failure.
One more nice thing is that it might be less confusing,
because choosing between predicatedList and the above filteredList might not be
so obvious.
New factory method with interface: filteredList(List<T> list, Predicate<? super
T> predicate, PredicateFailInterface action)
Complex, but the most flexible way of dealing with predicate failure.
--
This message was sent by Atlassian JIRA
(v6.2#6252)