comparison etl/src/main/java/org/dive4elements/river/etl/aft/River.java @ 5930:33e514a0c6b7

Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 08 May 2013 17:04:49 +0200
parents 8bd9b551456c
children dcbd63e35815
comparison
equal deleted inserted replaced
5929:4d526e313fa0 5930:33e514a0c6b7
13 13
14 import java.sql.ResultSet; 14 import java.sql.ResultSet;
15 import java.sql.SQLException; 15 import java.sql.SQLException;
16 16
17 import java.util.ArrayList; 17 import java.util.ArrayList;
18 import java.util.Collections;
18 import java.util.HashMap; 19 import java.util.HashMap;
19 import java.util.List; 20 import java.util.List;
20 import java.util.Map; 21 import java.util.Map;
21 22
22 import org.apache.log4j.Logger; 23 import org.apache.log4j.Logger;
321 + "' not found in FLYS. -> create"); 322 + "' not found in FLYS. -> create");
322 createDTs.add(aftDT); 323 createDTs.add(aftDT);
323 } 324 }
324 } 325 }
325 326
327 modified |= deleteDischargeTables(context, bfgId2FlysDT);
328
326 for (String bfgId: bfgId2FlysDT.keySet()) { 329 for (String bfgId: bfgId2FlysDT.keySet()) {
327 log.info("FLYS: Discharge table '" + bfgId 330 log.info("FLYS: Discharge table '" + bfgId
328 + "' found in FLYS but not in AFT. -> ignore"); 331 + "' found in FLYS but not in AFT. -> ignore");
329 } 332 }
330 333
447 450
448 aftDT.loadAftValues(context); 451 aftDT.loadAftValues(context);
449 aftDT.storeFlysValues(context, flysId); 452 aftDT.storeFlysValues(context, flysId);
450 } 453 }
451 454
455 protected boolean deleteDischargeTables(
456 SyncContext context,
457 Map<String, DischargeTable> tables
458 )
459 throws SQLException
460 {
461 ConnectedStatements flysStatements = context.getFlysStatements();
462
463 SymbolicStatement.Instance deleteDischargeTableValues =
464 flysStatements.getStatement("delete.discharge.table.values");
465
466 SymbolicStatement.Instance deleteDischargeTable =
467 flysStatements.getStatement("delete.discharge.table");
468
469 boolean modified = false;
470
471 for (Map.Entry<String, DischargeTable> entry: tables.entrySet()) {
472 log.info("FLYS: Discharge table '" + entry.getKey()
473 + "' found in FLYS but not in AFT. -> delete");
474 int id = entry.getValue().getId();
475
476 deleteDischargeTableValues
477 .clearParameters()
478 .setInt("id", id);
479 deleteDischargeTableValues.execute();
480
481 deleteDischargeTable
482 .clearParameters()
483 .setInt("id", id);
484 deleteDischargeTable.execute();
485
486 modified = true;
487 }
488 return modified;
489 }
490
452 protected void createDischargeTables( 491 protected void createDischargeTables(
453 SyncContext context, 492 SyncContext context,
454 DIPSGauge gauge 493 DIPSGauge gauge
455 ) 494 )
456 throws SQLException 495 throws SQLException

http://dive4elements.wald.intevation.org