I've logged two JIRA: - https://issues.apache.org/jira/browse/CAMEL-10389 --> Move some function to Stringhelper (target 2.19) - https://issues.apache.org/jira/browse/CAMEL-10390 --> Enhance before/after/between (target 2.18.1)
--- Luca Burgazzoli On Fri, Oct 14, 2016 at 2:38 PM, Antonin Stefanutti <anto...@stefanutti.fr> wrote: > >> On 14 Oct 2016, at 14:35, Luca Burgazzoli <lburgazz...@gmail.com> wrote: >> >> An option would be to move before/after/between in StringHelper and >> wrapping them in ObjectHelper with @Deprecated annotation, the >> proposed new methods should go straight to StringHelper. > > I didn’t dare to propose you that but that’s exactly what I had in mind ;-) > That being said, I don’t have the historic being this so there may be a good > reason. > >> --- >> Luca Burgazzoli >> >> >> On Fri, Oct 14, 2016 at 2:25 PM, Antonin Stefanutti >> <anto...@stefanutti.fr> wrote: >>> Hi Luca, >>> >>> Make sense to me. As I refactored Camel CDI with Java 8 in Camel 2.18.0, I >>> found using Optional as return type of internal util methods quite useful >>> in term of client conciseness / readability compared to null handling. >>> >>> I’m wondering whether that should be added to StringHelper instead of >>> ObjectHelper though the existing methods are in the later so probably a >>> trade-off between consistency / locality and relevancy. >>> >>> Antonin >>> >>>> On 14 Oct 2016, at 14:11, Luca Burgazzoli <lburgazz...@gmail.com> wrote: >>>> >>>> Hello, >>>> >>>> I've sometime had the need to find a string after a separator, lookup >>>> an object based on the result value and then use it to process >>>> something, like: >>>> >>>> String after = ObjectHelper.after(key, ":"); >>>> if (after != null) { >>>> MyStuff s = cache.get(after) >>>> if (s != null) { >>>> s.doSomething(exchange) >>>> } >>>> } >>>> >>>> >>>> So I wonder whether it makes sense to add a 'fluent' variant to these >>>> functions to impement such pattern, like: >>>> >>>> <T> Optional<T> after(String value, String delimiter, >>>> Function<String, T> function) >>>> >>>> >>>> The we could do something like: >>>> >>>> ObjectHelper.after(key, ":", cache::get).ifPresent(s -> >>>> s.doSomething(exchange)); >>>> >>>> >>>> Make sense ? >>>> >>>> >>>> --- >>>> Luca Burgazzoli >>> >