[
https://issues.apache.org/jira/browse/FREEMARKER-73?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16187042#comment-16187042
]
Daniel Dekany commented on FREEMARKER-73:
-----------------------------------------
{{sometimesNull!?sequence}} would be {{[]}}. Why? Magic! (: Kind of... I never
liked for `exp!` for it, but it's result is a multi-typed value that is empty
string and empty sequence and empty hash. Hence {{?sequence}} just bypasses it.
Seems your data-model is not like hose in a typical business application. Which
is fine as FM and its friends where pretty much deprecated by AnuglarJS and
Vaadin on that filed. Is this for Windup BTW?
> ?seq to convert some models to a sequence
> -----------------------------------------
>
> Key: FREEMARKER-73
> URL: https://issues.apache.org/jira/browse/FREEMARKER-73
> 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 {{?sequence}}.
> 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 purposes.
> 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
(v6.4.14#64029)