comparison artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/Builder.java @ 6050:06450ef553cc

DC: fixed dc:group
author Sascha L. Teichmann <teichmann@intevation.de>
date Tue, 21 May 2013 16:30:14 +0200
parents af13ceeba52a
children c7777feea223
comparison
equal deleted inserted replaced
6049:2f50591aacc7 6050:06450ef553cc
347 protected Map<Object, ResultData> createGroupedResultData( 347 protected Map<Object, ResultData> createGroupedResultData(
348 ResultData rd, 348 ResultData rd,
349 String expr, 349 String expr,
350 String type 350 String type
351 ) { 351 ) {
352
353 List<Object []> rows = rd.getRows(); 352 List<Object []> rows = rd.getRows();
354 String [] columns = rd.getColumnLabels(); 353 String [] columns = rd.getColumnLabels();
355 354
356 XPathExpression x; 355 XPathExpression x;
357 try { 356 try {
420 ResultData orig = connectionsStack.peek().getB(); 419 ResultData orig = connectionsStack.peek().getB();
421 420
422 Map<Object, ResultData> groups = 421 Map<Object, ResultData> groups =
423 createGroupedResultData(orig, expr, type); 422 createGroupedResultData(orig, expr, type);
424 423
425 String [] columns = orig.getColumnLabels(); 424 boolean debug = log.isDebugEnabled();
426 425
427 try { 426 try {
428 for (Map.Entry<Object, ResultData> entry: groups.entrySet()) { 427 for (Map.Entry<Object, ResultData> entry: groups.entrySet()) {
429 ResultData rd = entry.getValue(); 428 Object key = entry.getKey();
429 ResultData rd = entry.getValue();
430 pair.setB(rd); 430 pair.setB(rd);
431 groupExprStack.push(entry.getKey()); 431 groupExprStack.push(key);
432 if (debug) {
433 log.debug("group key: " + key);
434 }
432 try { 435 try {
433 for (Object [] row: rd.getRows()) { 436 for (int i = 0; i < S; ++i) {
434 frames.enter(); 437 build(parent, subs.item(i));
435 try {
436 frames.put(columns, row);
437 for (int i = 0; i < S; ++i) {
438 build(parent, subs.item(i));
439 }
440 }
441 finally {
442 frames.leave();
443 }
444 } 438 }
445 } 439 }
446 finally { 440 finally {
447 groupExprStack.pop(); 441 groupExprStack.pop();
448 } 442 }
475 log.warn("'var' not set."); 469 log.warn("'var' not set.");
476 return; 470 return;
477 } 471 }
478 472
479 Object [] result = new Object[1]; 473 Object [] result = new Object[1];
480
481 log.debug("Foo");
482 474
483 if (frames.getStore(container, result)) { 475 if (frames.getStore(container, result)) {
484 Object c = result[0]; 476 Object c = result[0];
485 if (c instanceof Object []) { 477 if (c instanceof Object []) {
486 c = Arrays.asList((Object [])c); 478 c = Arrays.asList((Object [])c);

http://dive4elements.wald.intevation.org