Revision 023f6f1e src/gr/ebs/gss/server/ejb/GSSDAOBean.java
b/src/gr/ebs/gss/server/ejb/GSSDAOBean.java | ||
---|---|---|
61 | 61 |
@PersistenceContext(unitName = "gss") |
62 | 62 |
private EntityManager manager; |
63 | 63 |
|
64 |
/* |
|
65 |
* (non-Javadoc) |
|
66 |
* |
|
67 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getRootFolder(java.lang.Long) |
|
68 |
*/ |
|
64 |
@Override |
|
69 | 65 |
public Folder getRootFolder(final Long userId) throws ObjectNotFoundException { |
70 | 66 |
try { |
71 | 67 |
if (userId == null) |
... | ... | |
78 | 74 |
} |
79 | 75 |
} |
80 | 76 |
|
81 |
/* |
|
82 |
* (non-Javadoc) |
|
83 |
* |
|
84 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getUser(java.lang.String) |
|
85 |
*/ |
|
77 |
@Override |
|
86 | 78 |
public User getUser(final String username) throws ObjectNotFoundException { |
87 | 79 |
try { |
88 | 80 |
if (username == null) |
... | ... | |
95 | 87 |
} |
96 | 88 |
} |
97 | 89 |
|
98 |
/* |
|
99 |
* (non-Javadoc) |
|
100 |
* |
|
101 |
* @see gr.ebs.gss.server.ejb.GSSDAO#create(java.lang.Object) |
|
102 |
*/ |
|
90 |
@Override |
|
103 | 91 |
public void create(final Object obj) { |
104 | 92 |
if (obj == null) |
105 | 93 |
throw new IllegalArgumentException("No object speficied"); |
106 | 94 |
manager.persist(obj); |
107 | 95 |
} |
108 | 96 |
|
109 |
/* |
|
110 |
* (non-Javadoc) |
|
111 |
* |
|
112 |
* @see gr.ebs.gss.server.ejb.GSSDAO#refresh(java.lang.Object) |
|
113 |
*/ |
|
97 |
@Override |
|
114 | 98 |
public void refresh(final Object obj) { |
115 | 99 |
if (obj == null) |
116 | 100 |
throw new IllegalArgumentException("No object speficied"); |
117 | 101 |
manager.refresh(obj); |
118 | 102 |
} |
119 | 103 |
|
120 |
/* |
|
121 |
* (non-Javadoc) |
|
122 |
* |
|
123 |
* @see gr.ebs.gss.server.ejb.GSSDAO#update(java.lang.Object) |
|
124 |
*/ |
|
104 |
@Override |
|
125 | 105 |
public void update(final Object obj) { |
126 | 106 |
if (obj == null) |
127 | 107 |
throw new IllegalArgumentException("No object speficied"); |
128 | 108 |
manager.merge(obj); |
129 | 109 |
} |
130 | 110 |
|
131 |
/* |
|
132 |
* (non-Javadoc) |
|
133 |
* |
|
134 |
* @see gr.ebs.gss.server.ejb.GSSDAO#delete(java.lang.Object) |
|
135 |
*/ |
|
111 |
@Override |
|
136 | 112 |
public void delete(final Object entity) { |
137 | 113 |
if (entity == null) |
138 | 114 |
throw new IllegalArgumentException("No object speficied"); |
139 | 115 |
manager.remove(entity); |
140 | 116 |
} |
141 | 117 |
|
142 |
/* |
|
143 |
* (non-Javadoc) |
|
144 |
* |
|
145 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getEntityById(java.lang.Class, |
|
146 |
* java.lang.Object) |
|
147 |
*/ |
|
118 |
@Override |
|
148 | 119 |
public <T> T getEntityById(final Class<T> _class, final Object _id) throws ObjectNotFoundException { |
149 | 120 |
if (_id == null) |
150 | 121 |
throw new ObjectNotFoundException("No " + _class.getSimpleName() + " specified"); |
... | ... | |
156 | 127 |
return entity; |
157 | 128 |
} |
158 | 129 |
|
159 |
/* |
|
160 |
* (non-Javadoc) |
|
161 |
* |
|
162 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getGroups(java.lang.Long) |
|
163 |
*/ |
|
130 |
@Override |
|
164 | 131 |
@SuppressWarnings("unchecked") |
165 | 132 |
public List<Group> getGroups(final Long userId) throws ObjectNotFoundException { |
166 | 133 |
if (userId == null) |
... | ... | |
169 | 136 |
return manager.createQuery("select g from Group g where g.owner.id=:userId").setParameter("userId", userId).getResultList(); |
170 | 137 |
} |
171 | 138 |
|
172 |
/* |
|
173 |
* (non-Javadoc) |
|
174 |
* |
|
175 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getFiles(java.lang.Long, java.lang.Boolean) |
|
176 |
*/ |
|
139 |
@Override |
|
177 | 140 |
@SuppressWarnings("unchecked") |
178 | 141 |
public List<FileHeader> getFiles(final Long folderId, Long userId, boolean ignoreDeleted) throws ObjectNotFoundException { |
179 | 142 |
if (folderId == null) |
... | ... | |
194 | 157 |
return retv; |
195 | 158 |
} |
196 | 159 |
|
197 |
/* |
|
198 |
* (non-Javadoc) |
|
199 |
* |
|
200 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getUsers(java.lang.Long) |
|
201 |
*/ |
|
160 |
@Override |
|
202 | 161 |
@SuppressWarnings("unchecked") |
203 | 162 |
public List<User> getUsers(final Long groupId) throws ObjectNotFoundException { |
204 | 163 |
if (groupId == null) |
... | ... | |
235 | 194 |
} |
236 | 195 |
} |
237 | 196 |
|
238 |
/* |
|
239 |
* (non-Javadoc) |
|
240 |
* |
|
241 |
* @see gr.ebs.gss.server.ejb.GSSDAO#existsGroup(java.lang.Long, |
|
242 |
* java.lang.String) |
|
243 |
*/ |
|
197 |
@Override |
|
244 | 198 |
public boolean existsGroup(final Long userId, final String name) throws ObjectNotFoundException { |
245 | 199 |
if (userId == null) |
246 | 200 |
throw new ObjectNotFoundException("No user specified"); |
... | ... | |
257 | 211 |
} |
258 | 212 |
} |
259 | 213 |
|
260 |
/* (non-Javadoc) |
|
261 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getUserTags(java.lang.Long) |
|
262 |
*/ |
|
214 |
@Override |
|
263 | 215 |
public Set<String> getUserTags(final Long userId) throws ObjectNotFoundException { |
264 | 216 |
if (userId == null) |
265 | 217 |
throw new ObjectNotFoundException("No user specified"); |
... | ... | |
268 | 220 |
.getResultList()); |
269 | 221 |
} |
270 | 222 |
|
271 |
/* (non-Javadoc) |
|
272 |
* @see gr.ebs.gss.server.ejb.GSSDAO#flush() |
|
273 |
*/ |
|
223 |
@Override |
|
274 | 224 |
public void flush() { |
275 | 225 |
manager.flush(); |
276 | 226 |
} |
277 | 227 |
|
278 |
/* (non-Javadoc) |
|
279 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getFile(java.lang.Long, java.lang.String) |
|
280 |
*/ |
|
228 |
@Override |
|
281 | 229 |
public FileHeader getFile(Long folderId, String name) throws ObjectNotFoundException { |
282 | 230 |
if (folderId == null) |
283 | 231 |
throw new ObjectNotFoundException("No parent folder specified"); |
... | ... | |
311 | 259 |
} |
312 | 260 |
} |
313 | 261 |
|
314 |
/* (non-Javadoc) |
|
315 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getDeletedFiles(java.lang.Long) |
|
316 |
*/ |
|
262 |
@Override |
|
317 | 263 |
public List<FileHeader> getDeletedFiles(Long userId) throws ObjectNotFoundException { |
318 | 264 |
if (userId == null) |
319 | 265 |
throw new ObjectNotFoundException("No User specified"); |
... | ... | |
329 | 275 |
return retv; |
330 | 276 |
} |
331 | 277 |
|
332 |
/* (non-Javadoc) |
|
333 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getDeletedRootFolders(java.lang.Long) |
|
334 |
*/ |
|
278 |
@Override |
|
335 | 279 |
public List<Folder> getDeletedRootFolders(Long userId) throws ObjectNotFoundException { |
336 | 280 |
if (userId == null) |
337 | 281 |
throw new ObjectNotFoundException("No User specified"); |
... | ... | |
450 | 394 |
return folders; |
451 | 395 |
} |
452 | 396 |
|
453 |
/* (non-Javadoc) |
|
454 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getSharedFiles(java.lang.Long, java.lang.Long) |
|
455 |
*/ |
|
456 | 397 |
@Override |
457 | 398 |
public List<FileHeader> getSharedFiles(Long userId, Long callingUserId) throws ObjectNotFoundException { |
458 | 399 |
if (userId == null) |
... | ... | |
475 | 416 |
return retv; |
476 | 417 |
} |
477 | 418 |
|
478 |
/* (non-Javadoc) |
|
479 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getSharedRootFolders(java.lang.Long, java.lang.Long) |
|
480 |
*/ |
|
481 | 419 |
@Override |
482 | 420 |
public List<Folder> getSharedRootFolders(Long userId, Long callingUserId) { |
483 | 421 |
List<Folder> folders = manager.createQuery("select distinct f from Folder f " + |
... | ... | |
496 | 434 |
|
497 | 435 |
} |
498 | 436 |
|
499 |
/* (non-Javadoc) |
|
500 |
* @see gr.ebs.gss.server.ejb.GSSDAO#searchFiles(java.lang.Long, java.lang.String) |
|
501 |
*/ |
|
502 | 437 |
@Override |
503 | 438 |
public List<FileHeader> searchFiles(Long userId, String query) { |
504 | 439 |
return manager.createQuery("select f from FileHeader f where f.owner.id=:userId and f.name like :query"). |
... | ... | |
514 | 449 |
return results.get(0); |
515 | 450 |
} |
516 | 451 |
|
517 |
/* (non-Javadoc) |
|
518 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getFileForIndexing(java.lang.Long) |
|
519 |
*/ |
|
520 | 452 |
@Override |
521 | 453 |
public FileHeader getFileForIndexing(Long id) throws ObjectNotFoundException { |
522 | 454 |
FileHeader h = getEntityById(FileHeader.class, id); |
... | ... | |
524 | 456 |
return h; |
525 | 457 |
} |
526 | 458 |
|
527 |
/* (non-Javadoc) |
|
528 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getFileCount(java.lang.Long) |
|
529 |
*/ |
|
530 | 459 |
@Override |
531 | 460 |
public Long getFileCount(Long userId) { |
532 | 461 |
Long singleResult = (Long) manager.createQuery("select count(f) from FileHeader f where f.owner.id=:ownerId") |
... | ... | |
535 | 464 |
return singleResult; |
536 | 465 |
} |
537 | 466 |
|
538 |
/* (non-Javadoc) |
|
539 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getFileSize(java.lang.Long) |
|
540 |
*/ |
|
541 | 467 |
@Override |
542 | 468 |
public Long getFileSize(Long userId) { |
543 | 469 |
Long singleResult = (Long) manager.createQuery("select sum(f.fileSize) from FileBody f where f.header.owner.id=:ownerId") |
... | ... | |
549 | 475 |
|
550 | 476 |
} |
551 | 477 |
|
552 |
/* (non-Javadoc) |
|
553 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getAllFileIds() |
|
554 |
*/ |
|
555 | 478 |
@Override |
556 | 479 |
public List<Long> getAllFileIds() { |
557 | 480 |
List<Long> ids = manager.createQuery("select f.id from FileHeader f").getResultList(); |
558 | 481 |
return ids; |
559 | 482 |
} |
560 | 483 |
|
561 |
/* (non-Javadoc) |
|
562 |
* @see gr.ebs.gss.server.ejb.GSSDAO#getFileUploadStatus(java.lang.Long, java.lang.String) |
|
563 |
*/ |
|
564 | 484 |
@Override |
565 | 485 |
public FileUploadStatus getFileUploadStatus(Long userId, String fileName) { |
566 | 486 |
List<FileUploadStatus> res = manager.createQuery(" select f from FileUploadStatus f where f.owner.id=:userId and f.filename=:filename").setParameter("userId", userId).setParameter("filename", fileName).getResultList(); |
... | ... | |
623 | 543 |
} |
624 | 544 |
|
625 | 545 |
@Override |
546 |
public List<UserClass> getUserClasses() { |
|
547 |
// Ordering by quota is important here. |
|
548 |
List<UserClass> ids = manager.createQuery("select uc from UserClass uc order by uc.quota").getResultList(); |
|
549 |
return ids; |
|
550 |
} |
|
551 |
|
|
552 |
@Override |
|
553 |
public List<User> getUsersByUserNameOrEmailLike(String query) { |
|
554 |
return manager.createQuery("select u from User u where " + |
|
555 |
" upper(u.username) like :query or upper(u.email) like :query order by u.username"). |
|
556 |
setParameter("query", query.toUpperCase()+"%").getResultList(); |
|
557 |
} |
|
558 |
|
|
559 |
@Override |
|
626 | 560 |
public Invitation findInvite(String code) { |
627 | 561 |
if (code == null) |
628 | 562 |
return null; |
... | ... | |
633 | 567 |
} |
634 | 568 |
|
635 | 569 |
@Override |
636 |
public List<UserClass> getUserClasses() { |
|
637 |
// Ordering by quota is important here. |
|
638 |
List<UserClass> ids = manager.createQuery("select uc from UserClass uc order by uc.quota").getResultList(); |
|
639 |
return ids; |
|
640 |
} |
|
641 |
|
|
642 |
@Override |
|
643 | 570 |
public UserClass findCouponUserClass() { |
644 | 571 |
List<UserClass> results = manager.createQuery("select uc from UserClass uc where uc.name=:name"). |
645 | 572 |
setParameter("name", getConfiguration().getString("couponQuota")).getResultList(); |
... | ... | |
655 | 582 |
} |
656 | 583 |
return results.get(0); |
657 | 584 |
} |
585 |
|
|
586 |
@Override |
|
587 |
public Long getFileCount(UserClass userClass) { |
|
588 |
Long result; |
|
589 |
if(userClass==null) |
|
590 |
result=(Long) manager.createQuery("select count(f) from FileHeader f").getSingleResult(); |
|
591 |
else result= (Long) manager.createQuery("select count(f) from FileHeader f where f.owner.userClass.id=:id").setParameter("id", userClass.getId()).getSingleResult(); |
|
592 |
if(result==null) |
|
593 |
result =0L; |
|
594 |
return result; |
|
595 |
} |
|
596 |
|
|
597 |
@Override |
|
598 |
public Long getFileSize(UserClass userClass) { |
|
599 |
Long result; |
|
600 |
if(userClass==null) |
|
601 |
result=(Long) manager.createQuery("select sum(f.currentBody.fileSize) from FileHeader f").getSingleResult(); |
|
602 |
else result=(Long) manager.createQuery("select sum(f.currentBody.fileSize) from FileHeader f where f.owner.userClass.id=:id").setParameter("id", userClass.getId()).getSingleResult(); |
|
603 |
if(result==null) |
|
604 |
result =0L; |
|
605 |
return result; |
|
606 |
} |
|
607 |
|
|
608 |
@Override |
|
609 |
public Long getUserCount(UserClass userClass) { |
|
610 |
Long result; |
|
611 |
if(userClass==null) |
|
612 |
result = (Long) manager.createQuery("select count(u) from User u").getSingleResult(); |
|
613 |
else result = (Long) manager.createQuery("select count(u) from User u where u.userClass.id=:id").setParameter("id", userClass.getId()).getSingleResult(); |
|
614 |
if(result==null) |
|
615 |
result =0L; |
|
616 |
return result; |
|
617 |
} |
|
618 |
|
|
619 |
@Override |
|
620 |
public Long getCountUsersByLastLogin(Date lastLoginDate) { |
|
621 |
return (Long) manager.createQuery("select count(u) from User u where " + |
|
622 |
" u.lastLogin >= :ldate ").setParameter("ldate", lastLoginDate).getSingleResult(); |
|
623 |
} |
|
624 |
|
|
625 |
@Override |
|
626 |
public List<User> getUsersByLastLogin(Date lastLoginDate) { |
|
627 |
return manager.createQuery("select u from User u where " + |
|
628 |
" u.lastLogin >= :ldate order by u.lastLogin desc"). |
|
629 |
setParameter("ldate", lastLoginDate).getResultList(); |
|
630 |
} |
|
631 |
|
|
632 |
@Override |
|
633 |
public List<User> getUsersByLastLogin(Date lastLoginDate, int firstResult, int maxResult) { |
|
634 |
return manager.createQuery("select u from User u where " + |
|
635 |
" u.lastLogin >= :ldate order by u.lastLogin desc"). |
|
636 |
setParameter("ldate", lastLoginDate).setFirstResult(firstResult).setMaxResults(maxResult).getResultList(); |
|
637 |
} |
|
638 |
|
|
639 |
@Override |
|
640 |
public List<User> getInactiveUsers() { |
|
641 |
return manager.createQuery("select u from User u where u.active=:active").setParameter("active", false).getResultList(); |
|
642 |
} |
|
643 |
|
|
644 |
@Override |
|
645 |
public List<FileHeader> searchFileByFilename(String filename) { |
|
646 |
return manager.createQuery("select f from FileHeader f where f.name=:name").setParameter("name", filename).getResultList(); |
|
647 |
} |
|
648 |
|
|
649 |
@Override |
|
650 |
public Long getBandwithUsed(UserClass userClass, Date date) { |
|
651 |
Long result; |
|
652 |
if (userClass == null) |
|
653 |
result = (Long) manager.createQuery("select sum(ai.bandwidthUsed)" + |
|
654 |
" from AccountingInfo ai where ai.dateFrom<=:date and " + |
|
655 |
"ai.dateTo>:date"). |
|
656 |
setParameter("date", date). |
|
657 |
getSingleResult(); |
|
658 |
else |
|
659 |
result = (Long) manager.createQuery("select sum(ai.bandwidthUsed)" + |
|
660 |
" from AccountingInfo ai where ai.user.userClass.id=:id " + |
|
661 |
"and ai.dateFrom<=:date and ai.dateTo>:date"). |
|
662 |
setParameter("date", date). |
|
663 |
setParameter("id", userClass.getId()). |
|
664 |
getSingleResult(); |
|
665 |
if (result == null) |
|
666 |
result = 0L; |
|
667 |
return result; |
|
668 |
} |
|
669 |
|
|
670 |
@Override |
|
671 |
public List<AccountingInfo> getAccountingInfo(User user) { |
|
672 |
List<AccountingInfo> ai = new ArrayList<AccountingInfo>(); |
|
673 |
try { |
|
674 |
ai = manager.createQuery("select ai from AccountingInfo ai " + |
|
675 |
"where ai.user=:user") |
|
676 |
.setParameter("user", user) |
|
677 |
.getResultList(); |
|
678 |
} |
|
679 |
catch (NoResultException e) {} |
|
680 |
return ai; |
|
681 |
} |
|
682 |
|
|
683 |
@Override |
|
684 |
public AccountingInfo getAccountingInfo(User user, Date date) { |
|
685 |
AccountingInfo ai = null; |
|
686 |
try { |
|
687 |
ai = (AccountingInfo) manager.createQuery("select ai from AccountingInfo ai " + |
|
688 |
"where ai.user=:user and ai.dateFrom<=:date and ai.dateTo>:date") |
|
689 |
.setParameter("user", user) |
|
690 |
.setParameter("date", date) |
|
691 |
.getSingleResult(); |
|
692 |
} |
|
693 |
catch (NoResultException e) { |
|
694 |
// If not found, that means that there is no accounting info noted |
|
695 |
// for given time. So return a 0 as an answer. |
|
696 |
ai = new AccountingInfo(user, date, date); |
|
697 |
} |
|
698 |
return ai; |
|
699 |
} |
|
658 | 700 |
} |
Also available in: Unified diff