freemarker-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Dekany (JIRA)" <>
Subject [jira] [Commented] (FREEMARKER-73) ?seq to convert some models to a sequence
Date Tue, 26 Sep 2017 08:51:00 GMT


Daniel Dekany commented on FREEMARKER-73:

Handing {{Stream}}-s is merely the question of {{ObjectWrapper}}. The problem with {{Stream}}
is the same as with {{Iterators}} though. If you list them once, then next time they will
act like an empty list, which is something that the template author doesn't expect. Working
that around that is perhaps the most important use-case for {{?sequence}}.

> ?seq to convert some models to a sequence
> -----------------------------------------
>                 Key: FREEMARKER-73
>                 URL:
>             Project: Apache Freemarker
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 2.3.26-incubating
>            Reporter: Ondra Žižka
>             Fix For: 2.3.27-incubating
> The objects I feed to FreeMarker often cotain {{Iterator}}s rather than {{Collection}}s.
> While it's quite easy to write a FreeMarker function {{iteratorToList(Iterator)}}, it
would be convenient to have the following:
> A built-in that would convert various models to a sequence. Could be named {{?seq}} or
> Usage:
> {code}<#assign foo = myIterable?seq>{code}
> {code}<#assign foo = myIterator?seq>{code}
> * A sequence would stay intact.
> * An {{Iterable}} wrapped in FM model would become internally a {{List}} - all elements
consumed and stored.
> For me, other cases are not that important, but with some imagination, other models could
also leverage it, like,
> * A {{Stream}} could be also turned into a {{List}}.
> * A hash could turn into a sequence of key/value pairs. That could be useful for debugging
> I am not sure if I didn't propose that already, but I could only find FREEMARKER-62.
> Thanks for considering.

This message was sent by Atlassian JIRA

View raw message