diff 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
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/ResultData.java	Thu May 02 17:58:16 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/ResultData.java	Thu May 02 20:52:18 2013 +0200
@@ -34,6 +34,10 @@
         rows = new ArrayList<Object []>();
     }
 
+    public ResultData(String [] columns) {
+        this(columns, new ArrayList<Object []>());
+    }
+
     public ResultData(String [] columns, List<Object []> rows) {
         this.columns = columns;
         this.rows = rows;
@@ -73,6 +77,10 @@
         return this;
     }
 
+    public void add(Object [] result) {
+        rows.add(result);
+    }
+
     public void add(ResultSet result) throws SQLException {
         Object [] row = new Object[columns.length];
         for (int i = 0; i < columns.length; ++i) {

http://dive4elements.wald.intevation.org