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.MoratoriumSynchroTables;
30 import fr.ifremer.quadrige3.synchro.meta.administration.ProgramStrategySynchroTables;
31
32 import java.util.List;
33
34 /**
35 * Manage table PROGRAMME :
36 * <ul>
37 * <li>Delete children tables (STRATEGY)
38 * </ul>
39 *
40 * @author Benoit Lavenier <benoit.lavenier@e-is.pro>
41 * @since 1.0
42 */
43 public class ProgramInterceptor extends AbstractProgramStrategyInterceptor {
44
45 /**
46 * <p>
47 * Constructor for ProgramInterceptor.
48 * </p>
49 */
50 public ProgramInterceptor() {
51 super(ProgramStrategySynchroTables.PROGRAMME.name());
52 setEnableOnWrite(true);
53 }
54
55 /** {@inheritDoc} */
56 @Override
57 protected void doOnDelete(List<Object> pk, SynchroTableDao sourceDao, SynchroTableDao targetDao, SynchroOperationRepository buffer) {
58 // Getting the stratId
59 String progCd = pk.get(0).toString();
60
61 // Delete children tables : STRATEGY
62 buffer.addChildToDeleteFromOneColumn(ProgramStrategySynchroTables.STRATEGY.name(), DatabaseColumns.PROG_CD.name(), progCd);
63 buffer.addChildToDeleteFromOneColumn(MoratoriumSynchroTables.MORATORIUM.name(), DatabaseColumns.PROG_CD.name(), progCd);
64 }
65
66 }