Subversion Repositories bacoAlunos

Rev

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
    }