Rev 1675 | Rev 1802 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1675 | Rev 1703 | ||
---|---|---|---|
Line 5... | Line 5... | ||
5 | import org.dom4j.Element; |
5 | import org.dom4j.Element; |
6 | import pt.estgp.estgweb.domain.*; |
6 | import pt.estgp.estgweb.domain.*; |
7 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
7 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
8 | import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
8 | import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
9 | import pt.estgp.estgweb.services.data.impl.DefaultRepositoryFile; |
9 | import pt.estgp.estgweb.services.data.impl.DefaultRepositoryFile; |
- | 10 | import pt.estgp.estgweb.services.data.types.AbstractRepositorySourceModuleInterfacePlugin; |
|
10 | import pt.estgp.estgweb.web.utils.DatesUtils; |
11 | import pt.estgp.estgweb.web.utils.DatesUtils; |
11 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
12 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
12 | 13 | ||
13 | import java.io.InputStream; |
14 | import java.io.InputStream; |
14 | import java.util.ArrayList; |
15 | import java.util.ArrayList; |
Line 22... | Line 23... | ||
22 | * @see pt.estgp.estgweb.services.data |
23 | * @see pt.estgp.estgweb.services.data |
23 | */ |
24 | */ |
24 | public class RepositoryService implements IService |
25 | public class RepositoryService implements IService |
25 | { |
26 | { |
26 | 27 | ||
27 | public 1.5.0/docs/api/java/lang/String.html">String storeRepositoryFile(5+0%2Fdocs%2Fapi+InputStream">InputStream stream, 1.5.0/docs/api/java/lang/String.html">String contentType, 1.5.0/docs/api/java/lang/String.html">String extension, int size, 1.5.0/docs/api/java/lang/String.html">String name, 1.5.0/docs/api/java/lang/String.html">String description, ResourceAccessControlEnum accessControl, UserSession userSession) |
28 | public 1.5.0/docs/api/java/lang/String.html">String storeRepositoryFile(5+0%2Fdocs%2Fapi+InputStream">InputStream stream, 1.5.0/docs/api/java/lang/String.html">String contentType, 1.5.0/docs/api/java/lang/String.html">String extension, int size, 1.5.0/docs/api/java/lang/String.html">String name, 1.5.0/docs/api/java/lang/String.html">String description, ResourceAccessControlEnum accessControl, AbstractRepositorySourceModuleInterfacePlugin sourceModuleInterfacePlugin, UserSession userSession) |
28 | { |
29 | { |
29 | return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl,userSession.getUser()); |
30 | return storeRepositoryFile(stream,contentType,extension,size,name,description,accessControl, sourceModuleInterfacePlugin, userSession.getUser()); |
30 | } |
31 | } |
31 | /** |
32 | /** |
- | 33 | * |
|
32 | * @param stream . |
34 | * @param stream . |
33 | * @param contentType . |
35 | * @param contentType . |
- | 36 | * @param extension . |
|
34 | * @param size . |
37 | * @param size . |
35 | * @param name . |
38 | * @param name . |
36 | * @param description . |
39 | * @param description . |
37 | * @param extension . |
- | |
38 | * @param accessControl . |
40 | * @param accessControl . |
39 | * @param user . |
41 | * @param sourceModuleInterfacePlugin |
40 | * @return the identifier to retrieve the document |
42 | *@param user . @return the identifier to retrieve the document |
41 | */ |
43 | */ |
42 | public 1.5.0/docs/api/java/lang/String.html">String storeRepositoryFile(5+0%2Fdocs%2Fapi+InputStream">InputStream stream, 1.5.0/docs/api/java/lang/String.html">String contentType, 1.5.0/docs/api/java/lang/String.html">String extension, int size, 1.5.0/docs/api/java/lang/String.html">String name, 1.5.0/docs/api/java/lang/String.html">String description, ResourceAccessControlEnum accessControl, User user) |
44 | public 1.5.0/docs/api/java/lang/String.html">String storeRepositoryFile(5+0%2Fdocs%2Fapi+InputStream">InputStream stream, 1.5.0/docs/api/java/lang/String.html">String contentType, 1.5.0/docs/api/java/lang/String.html">String extension, int size, 1.5.0/docs/api/java/lang/String.html">String name, 1.5.0/docs/api/java/lang/String.html">String description, ResourceAccessControlEnum accessControl, AbstractRepositorySourceModuleInterfacePlugin sourceModuleInterfacePlugin, User user) |
43 | { |
45 | { |
44 | RepositoryFileImpl repositoryFile = DomainObjectFactory.createRepositoryFileImpl(); |
46 | RepositoryFileImpl repositoryFile = DomainObjectFactory.createRepositoryFileImpl(); |
45 | repositoryFile.setSaveDate(new 5+0%2Fdocs%2Fapi+Date">Date()); |
47 | repositoryFile.setSaveDate(new 5+0%2Fdocs%2Fapi+Date">Date()); |
46 | repositoryFile.setDeleted(false); |
48 | repositoryFile.setDeleted(false); |
47 | repositoryFile.setAccessControl(accessControl.getKey()); |
49 | repositoryFile.setAccessControl(accessControl.getKey()); |
48 | repositoryFile.setOwner(user); |
50 | repositoryFile.setOwner(user); |
- | 51 | repositoryFile.setSourceModule(sourceModuleInterfacePlugin); |
|
49 | DaoFactory.getRepositoryFileDaoImpl().save(repositoryFile); |
52 | DaoFactory.getRepositoryFileDaoImpl().save(repositoryFile); |
50 | 53 | ||
51 | //todo getMD5Checksum() |
54 | //todo getMD5Checksum() |
52 | // System.out.println(getMD5Checksum(new File("/Volumes/Home/jorgemachado/Documents/FileZilla_3.24.0_macosx-x86.app.tar.bz2"))); |
55 | // System.out.println(getMD5Checksum(new File("/Volumes/Home/jorgemachado/Documents/FileZilla_3.24.0_macosx-x86.app.tar.bz2"))); |
53 | //System.out.println(compareTwoFiles(new File("/Volumes/Home/jorgemachado/Documents/FileZilla_3.24.0_macosx-x86.app.tar.bz2"), new File("/Volumes/Home/jorgemachado/Documents/FileZilla_3.24.0_macosx-x86.app.tar-copia.bz2"))); |
56 | //System.out.println(compareTwoFiles(new File("/Volumes/Home/jorgemachado/Documents/FileZilla_3.24.0_macosx-x86.app.tar.bz2"), new File("/Volumes/Home/jorgemachado/Documents/FileZilla_3.24.0_macosx-x86.app.tar-copia.bz2"))); |
Line 197... | Line 200... | ||
197 | repositoryFile.setLastVersion(repositoryFileVersion); |
200 | repositoryFile.setLastVersion(repositoryFileVersion); |
198 | DaoFactory.getRepositoryFileVersionDaoImpl().save(repositoryFileVersion); |
201 | DaoFactory.getRepositoryFileVersionDaoImpl().save(repositoryFileVersion); |
199 | return repositoryFileVersion; |
202 | return repositoryFileVersion; |
200 | } |
203 | } |
201 | 204 | ||
202 | public static 5+0%2Fdocs%2Fapi+Document">Document createXMLdescription(RepositoryFileVersionImpl repositoryFile) |
205 | public static 5+0%2Fdocs%2Fapi+Document">Document createXMLdescription(RepositoryFileVersionImpl repositoryFileVersion) |
203 | { |
206 | { |
204 | org.dom4j.5+0%2Fdocs%2Fapi+Document">Document dom = DocumentFactory.getInstance().createDocument(); |
207 | org.dom4j.5+0%2Fdocs%2Fapi+Document">Document dom = DocumentFactory.getInstance().createDocument(); |
205 | 5+0%2Fdocs%2Fapi+Element">Element rootElement = DocumentFactory.getInstance().createElement("repositoryFileVersion"); |
208 | 5+0%2Fdocs%2Fapi+Element">Element rootElement = DocumentFactory.getInstance().createElement("repositoryFileVersion"); |
206 | dom.setRootElement(rootElement); |
209 | dom.setRootElement(rootElement); |
- | 210 | ||
- | 211 | ||
- | 212 | ||
207 | rootElement.addAttribute("id", "" + repositoryFile.getId()); |
213 | rootElement.addAttribute("id", "" + repositoryFileVersion.getId()); |
208 | 214 | ||
209 | 5+0%2Fdocs%2Fapi+Element">Element saveDate = DocumentFactory.getInstance().createElement("saveDate"); |
215 | 5+0%2Fdocs%2Fapi+Element">Element saveDate = DocumentFactory.getInstance().createElement("saveDate"); |
210 | saveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getSaveDate())); |
216 | saveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getSaveDate())); |
211 | 217 | ||
212 | 5+0%2Fdocs%2Fapi+Element">Element name = DocumentFactory.getInstance().createElement("name"); |
218 | 5+0%2Fdocs%2Fapi+Element">Element name = DocumentFactory.getInstance().createElement("name"); |
213 | name.setText("" + repositoryFile.getName()); |
219 | name.setText("" + repositoryFileVersion.getName()); |
- | 220 | ||
- | 221 | ||
214 | 222 | ||
215 | 5+0%2Fdocs%2Fapi+Element">Element contentType = DocumentFactory.getInstance().createElement("contentType"); |
223 | 5+0%2Fdocs%2Fapi+Element">Element contentType = DocumentFactory.getInstance().createElement("contentType"); |
216 | contentType.setText(""+repositoryFile.getContentType()); |
224 | contentType.setText(""+repositoryFileVersion.getContentType()); |
217 | 225 | ||
218 | 5+0%2Fdocs%2Fapi+Element">Element extension = DocumentFactory.getInstance().createElement("extension"); |
226 | 5+0%2Fdocs%2Fapi+Element">Element extension = DocumentFactory.getInstance().createElement("extension"); |
219 | extension.setText("" + repositoryFile.getExtension()); |
227 | extension.setText("" + repositoryFileVersion.getExtension()); |
220 | 228 | ||
221 | 5+0%2Fdocs%2Fapi+Element">Element size = DocumentFactory.getInstance().createElement("sizeKb"); |
229 | 5+0%2Fdocs%2Fapi+Element">Element size = DocumentFactory.getInstance().createElement("sizeKb"); |
222 | size.setText("" + repositoryFile.getSizeKb()); |
230 | size.setText("" + repositoryFileVersion.getSizeKb()); |
223 | 231 | ||
224 | 5+0%2Fdocs%2Fapi+Element">Element description = DocumentFactory.getInstance().createElement("description"); |
232 | 5+0%2Fdocs%2Fapi+Element">Element description = DocumentFactory.getInstance().createElement("description"); |
225 | description.setText(repositoryFile.getDescription()); |
233 | description.setText(repositoryFileVersion.getDescription()); |
226 | 234 | ||
227 | rootElement.add(saveDate); |
235 | rootElement.add(saveDate); |
228 | rootElement.add(name); |
236 | rootElement.add(name); |
229 | rootElement.add(contentType); |
237 | rootElement.add(contentType); |
230 | rootElement.add(extension); |
238 | rootElement.add(extension); |
Line 233... | Line 241... | ||
233 | 241 | ||
234 | //Repository File Generics |
242 | //Repository File Generics |
235 | 5+0%2Fdocs%2Fapi+Element">Element repositoryFileElem = DocumentFactory.getInstance().createElement("repositoryFile"); |
243 | 5+0%2Fdocs%2Fapi+Element">Element repositoryFileElem = DocumentFactory.getInstance().createElement("repositoryFile"); |
236 | rootElement.add(repositoryFileElem); |
244 | rootElement.add(repositoryFileElem); |
237 | 245 | ||
238 | repositoryFileElem.addAttribute("id", "" + repositoryFile.getRepositoryFile().getId()); |
246 | repositoryFileElem.addAttribute("id", "" + repositoryFileVersion.getRepositoryFile().getId()); |
239 | 5+0%2Fdocs%2Fapi+Element">Element rSaveDate = DocumentFactory.getInstance().createElement("saveDate"); |
247 | 5+0%2Fdocs%2Fapi+Element">Element rSaveDate = DocumentFactory.getInstance().createElement("saveDate"); |
240 | rSaveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getRepositoryFile().getSaveDate())); |
248 | rSaveDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getRepositoryFile().getSaveDate())); |
241 | 249 | ||
242 | 5+0%2Fdocs%2Fapi+Element">Element rUpdateDate = DocumentFactory.getInstance().createElement("updateDate"); |
250 | 5+0%2Fdocs%2Fapi+Element">Element rUpdateDate = DocumentFactory.getInstance().createElement("updateDate"); |
243 | rUpdateDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFile.getRepositoryFile().getUpdateDate())); |
251 | rUpdateDate.setText(""+DatesUtils.getStringFromDateForFilename(repositoryFileVersion.getRepositoryFile().getUpdateDate())); |
244 | 252 | ||
245 | 253 | ||
246 | 5+0%2Fdocs%2Fapi+Element">Element accessControl = DocumentFactory.getInstance().createElement("accessControl"); |
254 | 5+0%2Fdocs%2Fapi+Element">Element accessControl = DocumentFactory.getInstance().createElement("accessControl"); |
247 | accessControl.setText(repositoryFile.getRepositoryFile().getAccessControl()); |
255 | accessControl.setText(repositoryFileVersion.getRepositoryFile().getAccessControl()); |
- | 256 | ||
- | 257 | 5+0%2Fdocs%2Fapi+Element">Element sourceModule = DocumentFactory.getInstance().createElement("sourceModule"); |
|
- | 258 | if(repositoryFileVersion.getRepositoryFile().getSourceModule() != null) |
|
- | 259 | sourceModule.setText(repositoryFileVersion.getRepositoryFile().getSourceModule().getModuleName()); |
|
- | 260 | else |
|
- | 261 | sourceModule.setText("null"); |
|
- | 262 | ||
248 | 263 | ||
249 | 5+0%2Fdocs%2Fapi+Element">Element deleted = DocumentFactory.getInstance().createElement("deleted"); |
264 | 5+0%2Fdocs%2Fapi+Element">Element deleted = DocumentFactory.getInstance().createElement("deleted"); |
250 | deleted.setText("" + repositoryFile.getRepositoryFile().isDeleted()); |
265 | deleted.setText("" + repositoryFileVersion.getRepositoryFile().isDeleted()); |
251 | 266 | ||
252 | repositoryFileElem.add(rSaveDate); |
267 | repositoryFileElem.add(rSaveDate); |
253 | repositoryFileElem.add(rUpdateDate); |
268 | repositoryFileElem.add(rUpdateDate); |
254 | repositoryFileElem.add(accessControl); |
269 | repositoryFileElem.add(accessControl); |
255 | repositoryFileElem.add(deleted); |
270 | repositoryFileElem.add(deleted); |
256 | 271 | ||
257 | 5+0%2Fdocs%2Fapi+Element">Element owner = DocumentFactory.getInstance().createElement("owner"); |
272 | 5+0%2Fdocs%2Fapi+Element">Element owner = DocumentFactory.getInstance().createElement("owner"); |
258 | repositoryFileElem.add(owner); |
273 | repositoryFileElem.add(owner); |
259 | owner.addAttribute("id", "" + repositoryFile.getRepositoryFile().getOwner().getId()); |
274 | owner.addAttribute("id", "" + repositoryFileVersion.getRepositoryFile().getOwner().getId()); |
260 | 275 | ||
261 | if (repositoryFile.getRepositoryFile().getOwner().getName() != null) |
276 | if (repositoryFileVersion.getRepositoryFile().getOwner().getName() != null) |
262 | { |
277 | { |
263 | 5+0%2Fdocs%2Fapi+Element">Element oName = DocumentFactory.getInstance().createElement("name"); |
278 | 5+0%2Fdocs%2Fapi+Element">Element oName = DocumentFactory.getInstance().createElement("name"); |
264 | oName.setText(repositoryFile.getRepositoryFile().getOwner().getName()); |
279 | oName.setText(repositoryFileVersion.getRepositoryFile().getOwner().getName()); |
265 | owner.add(oName); |
280 | owner.add(oName); |
266 | } |
281 | } |
267 | 282 | ||
268 | if (DocumentFactory.getInstance().createElement("roles") != null) |
283 | if (DocumentFactory.getInstance().createElement("roles") != null) |
269 | { |
284 | { |
270 | 5+0%2Fdocs%2Fapi+Element">Element oRoles = DocumentFactory.getInstance().createElement("roles"); |
285 | 5+0%2Fdocs%2Fapi+Element">Element oRoles = DocumentFactory.getInstance().createElement("roles"); |
271 | oRoles.setText(repositoryFile.getRepositoryFile().getOwner().getRoles()); |
286 | oRoles.setText(repositoryFileVersion.getRepositoryFile().getOwner().getRoles()); |
272 | owner.add(oRoles); |
287 | owner.add(oRoles); |
273 | } |
288 | } |
274 | 289 | ||
275 | 5+0%2Fdocs%2Fapi+Element">Element oClass = DocumentFactory.getInstance().createElement("class"); |
290 | 5+0%2Fdocs%2Fapi+Element">Element oClass = DocumentFactory.getInstance().createElement("class"); |
276 | oClass.setText(repositoryFile.getRepositoryFile().getOwner().getClass().getSimpleName()); |
291 | oClass.setText(repositoryFileVersion.getRepositoryFile().getOwner().getClass().getSimpleName()); |
277 | 292 | ||
278 | 293 | ||
279 | owner.add(oClass); |
294 | owner.add(oClass); |
280 | if (repositoryFile.getRepositoryFile().getOwner() instanceof User) |
295 | if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof User) |
281 | { |
296 | { |
282 | 5+0%2Fdocs%2Fapi+Element">Element oUsername = DocumentFactory.getInstance().createElement("username"); |
297 | 5+0%2Fdocs%2Fapi+Element">Element oUsername = DocumentFactory.getInstance().createElement("username"); |
283 | if(((User) repositoryFile.getRepositoryFile().getOwner()).getUsername() == null) |
298 | if(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getUsername() == null) |
284 | oUsername.setText("UNKNOWN"); |
299 | oUsername.setText("UNKNOWN"); |
285 | else |
300 | else |
286 | oUsername.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getUsername()); |
301 | oUsername.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getUsername()); |
287 | owner.add(oUsername); |
302 | owner.add(oUsername); |
288 | 303 | ||
289 | if (((User) repositoryFile.getRepositoryFile().getOwner()).getEmail() != null) |
304 | if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getEmail() != null) |
290 | { |
305 | { |
291 | 5+0%2Fdocs%2Fapi+Element">Element oEmail = DocumentFactory.getInstance().createElement("email"); |
306 | 5+0%2Fdocs%2Fapi+Element">Element oEmail = DocumentFactory.getInstance().createElement("email"); |
292 | oEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getEmail()); |
307 | oEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getEmail()); |
293 | owner.add(oEmail); |
308 | owner.add(oEmail); |
294 | } |
309 | } |
295 | 310 | ||
296 | if (((User) repositoryFile.getRepositoryFile().getOwner()).getOutEmail() != null) |
311 | if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getOutEmail() != null) |
297 | { |
312 | { |
298 | 5+0%2Fdocs%2Fapi+Element">Element outEmail = DocumentFactory.getInstance().createElement("outEmail"); |
313 | 5+0%2Fdocs%2Fapi+Element">Element outEmail = DocumentFactory.getInstance().createElement("outEmail"); |
299 | outEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getOutEmail()); |
314 | outEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getOutEmail()); |
300 | owner.add(outEmail); |
315 | owner.add(outEmail); |
301 | } |
316 | } |
302 | 317 | ||
303 | if (((User) repositoryFile.getRepositoryFile().getOwner()).getBi() != null) |
318 | if (((User) repositoryFileVersion.getRepositoryFile().getOwner()).getBi() != null) |
304 | { |
319 | { |
305 | 5+0%2Fdocs%2Fapi+Element">Element biEmail = DocumentFactory.getInstance().createElement("bi"); |
320 | 5+0%2Fdocs%2Fapi+Element">Element biEmail = DocumentFactory.getInstance().createElement("bi"); |
306 | biEmail.setText(((User) repositoryFile.getRepositoryFile().getOwner()).getBi()); |
321 | biEmail.setText(((User) repositoryFileVersion.getRepositoryFile().getOwner()).getBi()); |
307 | owner.add(biEmail); |
322 | owner.add(biEmail); |
308 | } |
323 | } |
309 | 324 | ||
310 | 325 | ||
311 | if (repositoryFile.getRepositoryFile().getOwner() instanceof Teacher) |
326 | if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof Teacher) |
312 | { |
327 | { |
313 | 5+0%2Fdocs%2Fapi+Element">Element code = DocumentFactory.getInstance().createElement("teacherCode"); |
328 | 5+0%2Fdocs%2Fapi+Element">Element code = DocumentFactory.getInstance().createElement("teacherCode"); |
314 | code.setText("" + ((Teacher) repositoryFile.getRepositoryFile().getOwner()).getSigesCode()); |
329 | code.setText("" + ((Teacher) repositoryFileVersion.getRepositoryFile().getOwner()).getSigesCode()); |
315 | owner.add(code); |
330 | owner.add(code); |
316 | } |
331 | } |
317 | if (repositoryFile.getRepositoryFile().getOwner() instanceof Student) |
332 | if (repositoryFileVersion.getRepositoryFile().getOwner() instanceof Student) |
318 | { |
333 | { |
319 | 5+0%2Fdocs%2Fapi+Element">Element code = DocumentFactory.getInstance().createElement("studentCode"); |
334 | 5+0%2Fdocs%2Fapi+Element">Element code = DocumentFactory.getInstance().createElement("studentCode"); |
320 | code.setText("" + ((Student) repositoryFile.getRepositoryFile().getOwner()).getSigesCode()); |
335 | code.setText("" + ((Student) repositoryFileVersion.getRepositoryFile().getOwner()).getSigesCode()); |
321 | owner.add(code); |
336 | owner.add(code); |
322 | } |
337 | } |
323 | } |
338 | } |
324 | return dom; |
339 | return dom; |
325 | } |
340 | } |