[
https://issues.apache.org/jira/browse/JENA-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16263306#comment-16263306
]
Andy Seaborne commented on JENA-1427:
-------------------------------------
If we add to {{ExtendedIterator}}, these are the possible operations:
* {{nextOptional}}
* {{nextOrElse}}
* {{nextOrElseGet}}
* {{nextOrElseThrow}}
where the {{nextOrElse*}} are functionally like {{nextOptional().orElse*}}
methods (all as default methods, the {{nextOrElse*}} not implemented as
"optional.orElse").
with an open question about whether the {{nextOrElse*}} are really necessary
(albeit shorter).
This seems like relatively low risk extension to the API. While generally, I am
nervous about tinkering with the main API because changes/additions are usually
opinionated, hence implicitly saying "and don't extend <other way/style>",
these operations don't fall into this category.
Would that work?
> Add nextOrElse() method in ExtendedIterator
> -------------------------------------------
>
> Key: JENA-1427
> URL: https://issues.apache.org/jira/browse/JENA-1427
> Project: Apache Jena
> Issue Type: Improvement
> Components: Core
> Affects Versions: Jena 3.5.0
> Reporter: Adam Jacobs
> Priority: Trivial
> Labels: easytask
>
> Allow a functional approach for returning a default value or throwing a
> custom exception from a Jena iterator.
> The following method may be added to the ExtendedIterator interface.
> {noformat}
> /**
> Answer the next object, if it exists, otherwise invoke the
> _supplier_.
> */
> public default T nextOrElse( Supplier<T> supplier ) {
> return hasNext() ? next() : supplier.get();
> }
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)