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 }

http://dive4elements.wald.intevation.org