View Javadoc
1   package fr.ifremer.quadrige3.core.dao.data.survey;
2   
3   /*-
4    * #%L
5    * Quadrige3 Core :: Quadrige3 Client 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.quadrige3.core.dao.system.synchronization.SynchronizationStatus;
27  import fr.ifremer.quadrige3.core.vo.data.survey.LightSurveyVO;
28  
29  import java.util.Collection;
30  import java.util.List;
31  
32  /**
33   * <p>
34   * SurveyExtendDao interface.
35   * </p>
36   * 
37   */
38  public interface SurveyExtendDao extends SurveyDao {
39  
40  	/**
41  	 * Delete the survey direclty if data has never been synchronized (no remoteId)
42  	 * else by DeletedItemHistory
43  	 * 
44  	 * @param surveyId
45  	 *            a int.
46  	 * @param recorderPersonId
47  	 *            mandatory if the data has been synchronized. Used to fill DeletedItemHistory.recorderPerson
48  	 */
49  	void removeUsingDeletedItemHistory(int surveyId, Integer recorderPersonId);
50  
51  	/**
52  	 * <p>
53  	 * removeByIds.
54  	 * </p>
55  	 * 
56  	 * @param ids
57  	 *            a {@link java.util.Collection} object.
58  	 */
59  	void removeByIds(Collection<Integer> ids);
60  
61  	/**
62  	 * <p>
63  	 * updateSynchronizationStatus.
64  	 * </p>
65  	 * 
66  	 * @param surveyId
67  	 *            a int.
68  	 * @param synchronizationStatus
69  	 *            a {@link fr.ifremer.quadrige3.core.dao.system.synchronization.SynchronizationStatus} object.
70  	 * @return a int.
71  	 */
72  	int updateSynchronizationStatus(int surveyId, SynchronizationStatus synchronizationStatus);
73  
74  	/**
75  	 * <p>
76  	 * updateSynchronizationStatus.
77  	 * </p>
78  	 * 
79  	 * @param surveyIds
80  	 *            a {@link java.util.List} object.
81  	 * @param synchronizationStatus
82  	 *            a {@link fr.ifremer.quadrige3.core.dao.system.synchronization.SynchronizationStatus} object.
83  	 * @return a int.
84  	 */
85  	int updateSynchronizationStatus(List<Integer> surveyIds, SynchronizationStatus synchronizationStatus);
86  
87  	/**
88  	 * Update HAS_MEAS flags on one survey. And optionnally on child sampling operation
89  	 * 
90  	 * @param surveyId
91  	 *            a int.
92  	 * @return updated rows count
93  	 */
94  	int updateHasMeasFlag(int surveyId);
95  
96  	/**
97  	 * Update HAS_MEAS flags on a list of surveys. And optionnally on child sampling operation
98  	 * 
99  	 * @return updated rows count
100 	 * @param surveyIds
101 	 *            a {@link java.util.List} object.
102 	 */
103 	int updateHasMeasFlag(List<Integer> surveyIds);
104 
105 	/**
106 	 * Apply the survey program to all children entities
107 	 * @param surveyId the survey id
108 	 */
109 	void applySurveyProgramsToChildren(int surveyId);
110 
111 	/**
112 	 * <p>
113 	 * isReadyToSynchronizeStatusForRecorderPerson.
114 	 * </p>
115 	 * 
116 	 * @param recorderPersonId
117 	 *            a int.
118 	 * @return a boolean.
119 	 */
120 	boolean isReadyToSynchronizeStatusForRecorderPerson(int recorderPersonId);
121 
122     /**
123 	 * Get IDs of observed locations that could be clean (ObservedLocation without ANY access rights on local DB)
124 	 * 
125 	 * @return a {@link java.util.List} object.
126 	 */
127 	List<Integer> getCleanableSurveyIds();
128 
129 	/**
130 	 * Get a light representation of a Survey.
131 	 * 
132 	 * @param surveyId
133 	 *            a int.
134 	 * @return a light value object
135 	 */
136 	LightSurveyVO getLightSurveyById(int surveyId);
137 }