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