Changeset 4167
- Timestamp:
- Mar 3, 2008, 9:20:28 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.6-stable/src/plugins/core/net/sf/basedb/plugins/BioAssaySetExporter.java
r4166 r4167 72 72 import net.sf.basedb.core.query.JoinType; 73 73 import net.sf.basedb.core.query.Orders; 74 import net.sf.basedb.core.query.Select;75 74 import net.sf.basedb.core.query.Selects; 76 75 import net.sf.basedb.core.query.SqlResult; … … 318 317 query.select(Selects.expression(qi.getExpression(dc, bas, mergeReporters), qi.getQueryAlias())); 319 318 } 320 321 if (mergeReporters) 322 { 323 QueryItem qi = qis.get("rep.id"); 324 Select rep = Selects.expression(qi.getExpression(dc, bas, mergeReporters), qi.getQueryAlias()); 325 if (!reporterFields.contains(qi.getExportName())) 326 { 327 query.select(rep); 328 } 329 query.group(Dynamic.column(VirtualColumn.COLUMN)); 330 query.group(Expressions.selected(rep)); 331 } 332 319 333 320 checkInterrupted(); 334 321 long count = getBaseFileSpotSectionCount(dc, bas.getSpotData(), mergeReporters); 335 322 checkInterrupted(); 336 exportBaseFileSectionSpots(out, dc, bas, query, reporterFields, spotFields, bas.getBioAssays().list(dc), qis, count );323 exportBaseFileSectionSpots(out, dc, bas, query, reporterFields, spotFields, bas.getBioAssays().list(dc), qis, count, mergeReporters); 337 324 out.flush(); 338 325 } … … 458 445 } 459 446 460 if (mergeReporters)461 {462 QueryItem qi = qis.get("rep.id");463 Select rep = Selects.expression(qi.getExpression(dc, bas, mergeReporters), qi.getQueryAlias());464 if (!reporterFields.contains(qi.getExportName()))465 {466 query.select(rep);467 }468 query.group(rep.getExpression());469 }470 471 447 checkInterrupted(); 472 448 long count = getBaseFileSpotSectionCount(dc, ba.getSpotData(), mergeReporters); 473 exportBaseFileSectionSpots(out, dc, bas, query, reporterFields, spotFields, Collections.singletonList(ba), qis, count );449 exportBaseFileSectionSpots(out, dc, bas, query, reporterFields, spotFields, Collections.singletonList(ba), qis, count, mergeReporters); 474 450 475 451 out.println(); … … 480 456 481 457 private void exportBaseFileSectionSpots(PrintWriter out, DbControl dc, BioAssaySet bas, DynamicSpotQuery query, 482 List<String> reporterFields, List<String> spotFields, List<BioAssay> assays, Map<String, QueryItem> qi, long count) 458 List<String> reporterFields, List<String> spotFields, List<BioAssay> assays, Map<String, QueryItem> qi, 459 long count, boolean mergeOnReporters) 483 460 throws SQLException 484 461 { … … 516 493 } 517 494 518 query.select(Selects.expression(Dynamic.column(VirtualColumn.POSITION), "_position")); 519 query.select(Selects.expression(Dynamic.column(VirtualColumn.COLUMN), "_column")); 520 query.order(Orders.asc(Dynamic.column(VirtualColumn.POSITION))); 521 query.order(Orders.asc(Dynamic.column(VirtualColumn.COLUMN))); 495 Expression posExpression = null; 496 Expression colExpression = null; 497 if (mergeOnReporters) 498 { 499 posExpression = Dynamic.column(VirtualTable.POSITION, VirtualColumn.REPORTER_ID); 500 colExpression = Dynamic.column(VirtualColumn.COLUMN); 501 query.group(colExpression); 502 query.group(posExpression); 503 } 504 else 505 { 506 posExpression = Dynamic.column(VirtualColumn.POSITION); 507 colExpression = Dynamic.column(VirtualColumn.COLUMN); 508 } 509 query.select(Selects.expression(posExpression, "_position")); 510 query.select(Selects.expression(colExpression, "_column")); 511 query.order(Orders.asc(posExpression)); 512 query.order(Orders.asc(colExpression)); 522 513 523 514 checkInterrupted();
Note: See TracChangeset
for help on using the changeset viewer.