View Javadoc
1   package fr.ifremer.quadrige2.core.dao.administration.program;
2   
3   /*-
4    * #%L
5    * Quadrige2 Core :: Quadrige2 Server 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.quadrige2.core.vo.administration.program.ProgramVO;
27  import fr.ifremer.quadrige2.core.vo.administration.strategy.StrategyVO;
28  
29  import java.util.List;
30  import java.util.Properties;
31  
32  /**
33   * Created by blavenie on 31/08/15.
34   */
35  public interface ProgramStrategyJdbcDao {
36  
37  	/**
38  	 * <p>
39  	 * getProgramsByCodes.
40  	 * </p>
41  	 * 
42  	 * @param codes
43  	 *            a {@link java.util.List} object.
44  	 * @return a {@link java.util.List} object.
45  	 */
46  	List<ProgramVO> getProgramsByCodes(List<String> codes);
47  
48  	/**
49  	 * <p>
50  	 * getProgramByCode.
51  	 * </p>
52  	 * 
53  	 * @param code
54  	 *            a {@link java.lang.String} object.
55  	 * @return a {@link fr.ifremer.quadrige2.core.vo.administration.program.ProgramVO} object.
56  	 */
57  	ProgramVO getProgramByCode(String code);
58  
59  	/**
60  	 * <p>
61  	 * getStrategiesByIds.
62  	 * </p>
63  	 * 
64  	 * @param ids
65  	 *            a {@link java.util.List} object.
66  	 * @return a {@link java.util.List} object.
67  	 */
68  	List<StrategyVO> getStrategiesByIds(List<Integer> ids);
69  
70  	/**
71  	 * <p>
72  	 * getStrategyById.
73  	 * </p>
74  	 * 
75  	 * @param id
76  	 *            a int.
77  	 * @return a {@link fr.ifremer.quadrige2.core.vo.administration.strategy.StrategyVO} object.
78  	 */
79  	StrategyVO getStrategyById(int id);
80  
81  	/**
82  	 * Get programs of an user (with read/write access rights on data).
83  	 * 
84  	 * @param userId
85  	 *            User identifier
86  	 * @return List of programs
87  	 */
88  	List<ProgramVO> getWritableProgramsByUserId(int userId);
89  
90  	/**
91  	 * Get programs of an user (with read/write access rights), from the given connection
92  	 * <p/>
93  	 * This method allow a used outside Spring context, using the given connection properties.
94  	 * 
95  	 * @param connectionProperties
96  	 *            if <code>null</code>, use the default connection from datasource
97  	 * @param userId
98  	 *            User identifier
99  	 * @return List of programs
100 	 */
101 	List<ProgramVO> getWritableProgramsByUserId(Properties connectionProperties, int userId);
102 
103 	/**
104 	 * Get programs of an user (with manager access rights: user can update program & strategies).
105 	 * 
106 	 * @param userId
107 	 *            User identifier
108 	 * @return List of programs
109 	 */
110 	List<ProgramVO> getManagedProgramsByUserId(int userId);
111 
112 	/**
113 	 * Get programs of an user (with manager access rights: user can update program & strategies).
114 	 * 
115 	 * @param connectionProperties
116 	 *            if <code>null</code>, use the default connection from datasource
117 	 * @param userId
118 	 *            User identifier
119 	 * @return List of programs
120 	 */
121 	List<ProgramVO> getManagedProgramsByUserId(Properties connectionProperties, int userId);
122 
123 }