Mercurial > dive4elements > river
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); |