001: /*
002: * SalomeTMF is a Test Management Framework
003: * Copyright (C) 2005 France Telecom R&D
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * @author Marche Mikael
020: *
021: * Contact: mikael.marche@rd.francetelecom.com
022: */
023:
024: package org.objectweb.salome_tmf.api.sql;
025:
026: import java.rmi.Remote;
027:
028: import org.objectweb.salome_tmf.api.data.AttachementWrapper;
029: import org.objectweb.salome_tmf.api.data.CampaignWrapper;
030: import org.objectweb.salome_tmf.api.data.EnvironmentWrapper;
031: import org.objectweb.salome_tmf.api.data.FamilyWrapper;
032: import org.objectweb.salome_tmf.api.data.FileAttachementWrapper;
033: import org.objectweb.salome_tmf.api.data.GroupWrapper;
034: import org.objectweb.salome_tmf.api.data.ParameterWrapper;
035: import org.objectweb.salome_tmf.api.data.ProjectWrapper;
036: import org.objectweb.salome_tmf.api.data.SalomeFileWrapper;
037: import org.objectweb.salome_tmf.api.data.UrlAttachementWrapper;
038: import org.objectweb.salome_tmf.api.data.UserWrapper;
039:
040: public interface ISQLProject extends Remote {
041: /**
042: * Insert a project in the DB and create default group and permission for the project
043: * @param name
044: * @param description
045: * @return
046: * @throws Exception
047: */
048: public int insert(String name, String description, int idAdmin)
049: throws Exception;
050:
051: /**
052: * Create a project by copy information with an other project idFromProject
053: * @param name
054: * @param description : the description of the new project
055: * @param idAdmin : the administator of the new project
056: * @param idFromProject : the project where find the informations to create the new project
057: * @param suite : true for copy tests information
058: * @param campagne : true for copy campaigns information
059: * @param users : true for copy users information
060: * @param groupe : true for copy groups information
061: * @return
062: * @throws Exception
063: */
064: public int copyProject(String name, String description,
065: int idAdmin, int idFromProject, boolean suite,
066: boolean campagne, boolean users, boolean groupe)
067: throws Exception;
068:
069: /**
070: * Attach a file to the Project identified by idProject (Table PROJET_VOICE_TESTING_ATTACHEMENT )
071: * @param idProject
072: * @param f the file
073: * @param description of the file
074: * @return the Id of the attachment in the table ATTACHEMENT
075: * @throws Exception
076: * @see ISQLFileAttachment.insert(File, String)
077: * no permission needed
078: */
079: public int addAttachFile(int idProject, SalomeFileWrapper f,
080: String description) throws Exception;
081:
082: /**
083: * Attach an Url to the Project identified by idProject (Table PROJET_VOICE_TESTING_ATTACHEMENT )
084: * @param idProject
085: * @param url
086: * @param description of the url
087: * @return the Id of the attachment in the table ATTACHEMENT
088: * @throws Exception
089: * @see ISQLUrlAttachment.insert(String, String)
090: * no permission needed
091: */
092: public int addAttachUrl(int idProject, String url,
093: String description) throws Exception;
094:
095: /**
096: * Update project name and description in the database for the project idProject
097: * @param idProject
098: * @param newName
099: * @param newDesc
100: * @throws Exception
101: * no permission needed
102: */
103: public void update(int idProject, String newName, String newDesc)
104: throws Exception;
105:
106: /**
107: * Delete a project in the database
108: * the delete
109: * @param idProject
110: * @param name
111: * @throws Exception
112: */
113: public void delete(int idProject, String name) throws Exception;
114:
115: /**
116: * Delete all attchements of the project identified by idProject
117: * @param idProject
118: * @throws Exception
119: * no permission needed
120: */
121: public void deleteAllAttach(int idProject) throws Exception;
122:
123: /**
124: * Delete an attchement idAttach of the project identified by idProject
125: * @param idProject
126: * @param idAttach
127: * @throws Exception
128: * @see ISQLAttachment.delete(int)
129: * no permission needed
130: */
131: public void deleteAttach(int idProject, int idAttach)
132: throws Exception;
133:
134: /**
135: * Get an Array of AttachementWrapper (FileAttachementWrapper, UrlAttachementWrapper)
136: * for the project identified by idProject
137: * @param idProject : id of the project
138: * @return
139: * @throws Exception
140: */
141: public AttachementWrapper[] getAllAttachemnt(int idProject)
142: throws Exception;
143:
144: /**
145: * Get an Array of FileAttachementWrapper for the project identified by idProject
146: * @param idProject : id of the project
147: * @return
148: * @throws Exception
149: */
150: public FileAttachementWrapper[] getAllAttachFiles(int idProject)
151: throws Exception;
152:
153: /**
154: * Get an Array of UrlAttachementWrapper for the project identified by idProject
155: * @param idProject : id of the project
156: * @return
157: * @throws Exception
158: */
159: public UrlAttachementWrapper[] getAllAttachUrls(int idProject)
160: throws Exception;
161:
162: /**
163: * Get the number of family in the project identified by idProject
164: * @param idProject
165: * @throws Exception
166: */
167: public int getNumberOfFamily(int idProject) throws Exception;
168:
169: /**
170: * Get a FamilyWrapper representing a family at order in the project identified by idProject
171: * @param idProject
172: * @param order
173: * @throws Exception
174: */
175: public FamilyWrapper getFamilyByOrder(int idProject, int order)
176: throws Exception;
177:
178: /**
179: * Get an Array of FamilyWrapper representing all family defined in the project idProject
180: * @param idProject
181: * @return
182: * @throws Exception
183: */
184: public FamilyWrapper[] getFamily(int idProject) throws Exception;
185:
186: /**
187: * Get a ProjectWrapper representing the project identified by name
188: * @param name
189: * @return
190: * @throws Exception
191: */
192: public ProjectWrapper getProject(String name) throws Exception;
193:
194: /**
195: * Get an Array of ProjectWrapper representing all the project in the database
196: * @throws Exception
197: */
198: public ProjectWrapper[] getAllProjects() throws Exception;
199:
200: /**
201: * Return an Array of UserWrapper representing all available User in Salome-TMF
202: * @return
203: * @throws Exception
204: */
205: public UserWrapper[] getAllUser() throws Exception;
206:
207: /**
208: * Get an Array of UserWrapper representing all the Users in the project projectName
209: * @param projectName
210: * @throws Exception
211: */
212: public UserWrapper[] getUsersOfProject(String projectName)
213: throws Exception;
214:
215: /**
216: * Get an Array of UserWrapper representing all admins in the project projectName
217: * @param idProject
218: * @throws Exception
219: */
220: public UserWrapper[] getAdminsOfProject(String projectName)
221: throws Exception;
222:
223: /**
224: * Get an Array of UserWrapper representing all user in groupName in the project projectName
225: * @param idProject
226: * @throws Exception
227: */
228: public UserWrapper[] getUserOfGroupInProject(String projectName,
229: String groupName) throws Exception;
230:
231: /**
232: * Get an Array of ParameterWrapper for the project idProject
233: * @param idProject
234: * @return
235: * @throws Exception
236: */
237: public ParameterWrapper[] getProjectParams(int idProject)
238: throws Exception;
239:
240: /**
241: * Get an Array of EnvironmentWrapper representing the environnment of the project idProject
242: * @param idProject
243: * @return
244: * @throws Exception
245: */
246: public EnvironmentWrapper[] getProjectEnvs(int idProject)
247: throws Exception;
248:
249: /**
250: * Get an Array of CampaignWrapper representing the campaigns of the project idProject
251: * @param idProject
252: * @return
253: * @throws Exception
254: */
255: public CampaignWrapper[] getPrjectCampaigns(int idProject)
256: throws Exception;
257:
258: /**
259: * Get an Array of GroupWrapper representing groups in the project idProject
260: * @param idProject
261: * @return
262: * @throws Exception
263: */
264: public GroupWrapper[] getProjectGroups(int idProject)
265: throws Exception;
266: }
|