Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FunctionResolver.java @ 5890:6ea004d51203
Datacage: Introduced <dc:group epxr="xpath" type="type"> ... </dc:group> and XPath function dc:group-key().
This splits the current result set into groups formed by expr. The type defaults to string.
Afterwards all these groups are iterated by there natural order.
The dc:group-key() gives access to the result of the grouping expression that forms a group.
Say, you have a result set like this:
name | description
-----+------------
a | foo
a | bar
b | baz
b | bla
c | blub
you can use:
<dc:group expr="$name">
<group name="{dc:group-key()}">
<dc:for-each>
<description value="{$description}"/>
</dc:for-each>
</group>
</dc:group>
to create:
<group name="a">
<description name="foo"/>
<description name="bar"/>
</group>
<group name="b">
<description name="baz"/>
<description name="bla"/>
</group>
<group name="c">
<description name="blub"/>
</group>
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 02 May 2013 20:52:18 +0200 |
parents | 4897a58c8746 |
children | af13ceeba52a |
comparison
equal
deleted
inserted
replaced
5888:a763fb7aa2e5 | 5890:6ea004d51203 |
---|---|
99 | 99 |
100 addFunction("has-result", 0, new XPathFunction() { | 100 addFunction("has-result", 0, new XPathFunction() { |
101 @Override | 101 @Override |
102 public Object evaluate(List args) throws XPathFunctionException { | 102 public Object evaluate(List args) throws XPathFunctionException { |
103 return FunctionResolver.this.buildHelper.hasResult(); | 103 return FunctionResolver.this.buildHelper.hasResult(); |
104 } | |
105 }); | |
106 | |
107 addFunction("group-key", 0, new XPathFunction() { | |
108 @Override | |
109 public Object evaluate(List args) throws XPathFunctionException { | |
110 return FunctionResolver.this.buildHelper.getGroupKey(); | |
104 } | 111 } |
105 }); | 112 }); |
106 | 113 |
107 addFunction("date-format", 2, new XPathFunction() { | 114 addFunction("date-format", 2, new XPathFunction() { |
108 @Override | 115 @Override |