1 package fr.ifremer.quadrige3.synchro.intercept.administration;
2
3 /*-
4 * #%L
5 * Quadrige3 Core :: Quadrige3 Synchro Core
6 * $Id:$
7 * $HeadURL:$
8 * %%
9 * Copyright (C) 2017 Ifremer
10 * %%
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Affero General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU Affero General Public License
22 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 * #L%
24 */
25
26 import fr.ifremer.common.synchro.dao.SynchroTableDao;
27 import fr.ifremer.common.synchro.intercept.SynchroOperationRepository;
28 import fr.ifremer.quadrige3.synchro.meta.DatabaseColumns;
29 import fr.ifremer.quadrige3.synchro.meta.administration.ProgramStrategySynchroTables;
30
31 import java.util.List;
32
33 /**
34 * Manage table STRATEGY :
35 * <ul>
36 * <li>Delete children tables (APPLIED_STRATEGY, PMFM_STRATEGY)
37 * </ul>
38 *
39 * @author Benoit Lavenier <benoit.lavenier@e-is.pro>
40 * @since 1.0
41 */
42 public class StrategyInterceptor extends AbstractProgramStrategyInterceptor {
43
44 /**
45 * <p>
46 * Constructor for StrategyInterceptor.
47 * </p>
48 */
49 public StrategyInterceptor() {
50 super(ProgramStrategySynchroTables.STRATEGY.name());
51 setEnableOnWrite(true);
52 }
53
54 /** {@inheritDoc} */
55 @Override
56 protected void doOnDelete(List<Object> pk, SynchroTableDao sourceDao, SynchroTableDao targetDao, SynchroOperationRepository buffer) {
57 // Getting the stratId
58 Integer stratId = Integer.parseInt(pk.get(0).toString());
59
60 // Delete children tables : APPLIED_STRATEGY, PMFM_STRATEGY
61 buffer.addChildToDeleteFromOneColumn(ProgramStrategySynchroTables.APPLIED_STRATEGY.name(), DatabaseColumns.STRAT_ID.name(), stratId);
62 buffer.addChildToDeleteFromOneColumn(ProgramStrategySynchroTables.PMFM_STRATEGY.name(), DatabaseColumns.STRAT_ID.name(), stratId);
63 }
64 }