Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/ResultData.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 |
---|---|
30 | 30 |
31 protected List<Object []> rows; | 31 protected List<Object []> rows; |
32 | 32 |
33 public ResultData() { | 33 public ResultData() { |
34 rows = new ArrayList<Object []>(); | 34 rows = new ArrayList<Object []>(); |
35 } | |
36 | |
37 public ResultData(String [] columns) { | |
38 this(columns, new ArrayList<Object []>()); | |
35 } | 39 } |
36 | 40 |
37 public ResultData(String [] columns, List<Object []> rows) { | 41 public ResultData(String [] columns, List<Object []> rows) { |
38 this.columns = columns; | 42 this.columns = columns; |
39 this.rows = rows; | 43 this.rows = rows; |
71 add(result); | 75 add(result); |
72 } | 76 } |
73 return this; | 77 return this; |
74 } | 78 } |
75 | 79 |
80 public void add(Object [] result) { | |
81 rows.add(result); | |
82 } | |
83 | |
76 public void add(ResultSet result) throws SQLException { | 84 public void add(ResultSet result) throws SQLException { |
77 Object [] row = new Object[columns.length]; | 85 Object [] row = new Object[columns.length]; |
78 for (int i = 0; i < columns.length; ++i) { | 86 for (int i = 0; i < columns.length; ++i) { |
79 row[i] = result.getObject(i+1); | 87 row[i] = result.getObject(i+1); |
80 } | 88 } |