comparison artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/Builder.java @ 6092:bdb316f7c552

Datacage: Fixed addColumn in <dc:virtual-column>
author Sascha L. Teichmann <teichmann@intevation.de>
date Fri, 24 May 2013 18:13:23 +0200
parents 47775e3a8cf6
children 4b634935a2ad
comparison
equal deleted inserted replaced
6091:75a38bc6baf2 6092:bdb316f7c552
515 QName returnType 515 QName returnType
516 ) { 516 ) {
517 String [] origColumns = rd.getColumnLabels(); 517 String [] origColumns = rd.getColumnLabels();
518 int index = origColumns.length; 518 int index = origColumns.length;
519 String [] newColumns = Arrays.copyOf(origColumns, index+1); 519 String [] newColumns = Arrays.copyOf(origColumns, index+1);
520 newColumns[index] = name.toLowerCase();
520 ResultData result = new ResultData(newColumns); 521 ResultData result = new ResultData(newColumns);
521 fillResult(result, rd, index, index+1, expr, returnType); 522 fillResult(result, rd, index, index+1, expr, returnType);
522 return result; 523 return result;
523 } 524 }
524 525
533 fillResult(result, rd, index, columns.length, expr, returnType); 534 fillResult(result, rd, index, columns.length, expr, returnType);
534 return result; 535 return result;
535 } 536 }
536 537
537 protected void fillResult( 538 protected void fillResult(
538 ResultData result, 539 ResultData result,
539 ResultData rd, 540 ResultData rd,
540 int index, 541 int index,
541 int size, 542 int size,
542 XPathExpression expr, 543 XPathExpression expr,
543 QName returnType 544 QName returnType
544 ) { 545 ) {
545 List<Object []> rows = rd.getRows();
546 String [] origColumns = rd.getColumnLabels(); 546 String [] origColumns = rd.getColumnLabels();
547 for (int i = 0, R = rows.size(); i < R; ++i) { 547 for (Object [] row: rd.getRows()) {
548 Object [] row = rows.get(i);
549 frames.enter(); 548 frames.enter();
550 try { 549 try {
551 frames.put(origColumns, row); 550 frames.put(origColumns, row);
552 Object value = expr.evaluate(EVAL_DOCUMENT, returnType); 551 Object value = expr.evaluate(EVAL_DOCUMENT, returnType);
553 Object [] copy = Arrays.copyOf(row, size); 552 Object [] copy = Arrays.copyOf(row, size);

http://dive4elements.wald.intevation.org