16
16
package io .hops .hopsworks .common .dao .dataset ;
17
17
18
18
import io .hops .hopsworks .common .dao .AbstractFacade ;
19
- import io .hops .hopsworks .common .dao .hdfs .inode .InodeFacade ;
20
- import io .hops .hopsworks .persistence .entity .project .Project ;
21
19
import io .hops .hopsworks .persistence .entity .dataset .Dataset ;
22
20
import io .hops .hopsworks .persistence .entity .dataset .DatasetSharedWith ;
23
21
import io .hops .hopsworks .persistence .entity .dataset .DatasetType ;
22
+ import io .hops .hopsworks .persistence .entity .project .Project ;
24
23
25
- import javax .ejb .EJB ;
26
24
import javax .ejb .Stateless ;
27
25
import javax .persistence .EntityManager ;
28
26
import javax .persistence .NoResultException ;
29
27
import javax .persistence .PersistenceContext ;
30
28
import javax .persistence .Query ;
31
- import java .util .Date ;
32
29
import java .util .List ;
33
30
import java .util .Set ;
34
31
@@ -38,8 +35,6 @@ public class DatasetSharedWithFacade extends AbstractFacade<DatasetSharedWith> {
38
35
@ PersistenceContext (unitName = "kthfsPU" )
39
36
private EntityManager em ;
40
37
41
- @ EJB
42
- private InodeFacade inodeFacade ;
43
38
44
39
@ Override
45
40
protected EntityManager getEntityManager () {
@@ -76,56 +71,37 @@ public CollectionInfo findAllDatasetByProject(Integer offset, Integer limit, Set
76
71
"d.project = :project " );
77
72
Query query = em .createQuery (queryStr , DatasetSharedWith .class ).setParameter ("project" , project );
78
73
Query queryCount = em .createQuery (queryCountStr , DatasetSharedWith .class ).setParameter ("project" , project );
79
- setFilter (filter , query , project );
80
- setFilter (filter , queryCount , project );
74
+ setFilter (filter , query );
75
+ setFilter (filter , queryCount );
81
76
setOffsetAndLim (offset , limit , query );
82
77
return new CollectionInfo ((Long ) queryCount .getSingleResult (), query .getResultList ());
83
78
}
84
79
85
- private void setFilter (Set <? extends AbstractFacade .FilterBy > filter , Query q , Project project ) {
80
+ private void setFilter (Set <? extends AbstractFacade .FilterBy > filter , Query q ) {
86
81
if (filter == null || filter .isEmpty ()) {
87
82
return ;
88
83
}
89
84
for (FilterBy aFilter : filter ) {
90
- setFilterQuery (aFilter , q , project );
85
+ setFilterQuery (aFilter , q );
91
86
}
92
87
}
93
88
94
- private void setFilterQuery (AbstractFacade .FilterBy filterBy , Query q , Project project ) {
89
+ private void setFilterQuery (AbstractFacade .FilterBy filterBy , Query q ) {
95
90
switch (Filters .valueOf (filterBy .getValue ())) {
96
91
case NAME :
92
+ case NAME_NEQ :
93
+ case NAME_LIKE :
97
94
q .setParameter (filterBy .getField (), filterBy .getParam ());
98
95
break ;
99
96
case ACCEPTED :
100
97
case PUBLIC :
101
98
case SHARED :
102
99
case SEARCHABLE :
103
- case UNDER_CONSTRUCTION :
104
100
q .setParameter (filterBy .getField (), getBooleanValue (filterBy .getParam ()));
105
101
break ;
106
102
case TYPE :
107
103
q .setParameter (filterBy .getField (), getEnumValue (filterBy .getField (), filterBy .getValue (), DatasetType .class ));
108
104
break ;
109
- case HDFS_USER :
110
- q .setParameter (filterBy .getField (), inodeFacade .gethdfsUser (filterBy .getParam ()));
111
- break ;
112
- case USER_EMAIL :
113
- q .setParameter (filterBy .getField (), inodeFacade .getUsers (filterBy .getParam (), project ));
114
- break ;
115
- case ACCESS_TIME :
116
- case ACCESS_TIME_GT :
117
- case ACCESS_TIME_LT :
118
- case MODIFICATION_TIME :
119
- case MODIFICATION_TIME_GT :
120
- case MODIFICATION_TIME_LT :
121
- Date date = getDate (filterBy .getField (), filterBy .getParam ());
122
- q .setParameter (filterBy .getField (), date .getTime ());
123
- break ;
124
- case SIZE :
125
- case SIZE_LT :
126
- case SIZE_GT :
127
- q .setParameter (filterBy .getField (), getIntValue (filterBy ));
128
- break ;
129
105
default :
130
106
break ;
131
107
}
@@ -135,10 +111,8 @@ public enum Sorts {
135
111
ID ("ID" , "d.dataset.id " , "ASC" ),
136
112
NAME ("NAME" , "LOWER(d.dataset.name) " , "ASC" ),
137
113
SEARCHABLE ("SEARCHABLE" , "d.dataset.searchable " , "ASC" ),
138
- MODIFICATION_TIME ("MODIFICATION_TIME" , "d.dataset.inode.modificationTime " , "ASC" ),
139
- ACCESS_TIME ("ACCESS_TIME" , "d.dataset.inode.accessTime " , "ASC" ),
140
114
PUBLIC ("PUBLIC" , "d.dataset.public " , "ASC" ),
141
- SIZE ( "SIZE" , "d.dataset.inode.size " , "ASC" ),
115
+
142
116
TYPE ("TYPE" , "d.dataset.dsType " , "ASC" );
143
117
144
118
private final String value ;
@@ -175,30 +149,14 @@ public String toString() {
175
149
}
176
150
177
151
public enum Filters {
178
- NAME ("NAME" , "d.dataset.name LIKE CONCAT(:name, '%') " , "name" , " " ),
179
- USER_EMAIL ("USER_EMAIL" , "d.dataset.inode.hdfsUser =:user " , "user" , " " ),
180
- HDFS_USER ("HDFS_USER" , "d.dataset.inode.hdfsUser =:hdfsUser " , "hdfsUser" , " " ),
181
- UNDER_CONSTRUCTION ("UNDER_CONSTRUCTION" , "d.dataset.inode.underConstruction =:underConstruction " ,
182
- "underConstruction" , "true" ),
152
+ NAME ("NAME" , "LOWER(d.dataset.name) LIKE LOWER(CONCAT(:name, '%')) " , "name" , " " ),
153
+ NAME_NEQ ("NAME_NEQ" , "LOWER(d.dataset.name) NOT LIKE LOWER(CONCAT(:name_not_eq, '%')) " , "name_not_eq" , " " ),
154
+ NAME_LIKE ("NAME_LIKE" , "LOWER(d.dataset.name) LIKE LOWER(CONCAT('%', :name_like, '%')) " , "name_like" , " " ),
183
155
ACCEPTED ("ACCEPTED" , "d.accepted =:accepted " , "accepted" , "true" ),
184
156
SHARED ("SHARED" , "true =:shared " , "shared" , "true" ),//return all if true nothing if false
185
157
SEARCHABLE ("SEARCHABLE" , "d.dataset.searchable =:searchable " , "searchable" , "0" ),
186
158
TYPE ("TYPE" , "d.dataset.dsType =:dsType " , "dsType" , "DATASET" ),
187
- PUBLIC ("PUBLIC" , "d.dataset.public =:public " , "public" , "0" ),
188
- MODIFICATION_TIME ("MODIFICATION_TIME" , "d.dataset.inode.modificationTime =:modificationTime " , "modificationTime" ,
189
- "" ),
190
- MODIFICATION_TIME_LT ("MODIFICATION_TIME_LT" , "d.dataset.inode.modificationTime <:modificationTime_lt " ,
191
- "modificationTime_lt" ,
192
- "" ),
193
- MODIFICATION_TIME_GT ("MODIFICATION_TIME_GT" , "d.dataset.inode.modificationTime >:modificationTime_gt " ,
194
- "modificationTime_gt" ,
195
- "" ),
196
- ACCESS_TIME ("ACCESS_TIME" , "d.dataset.inode.accessTime =:accessTime " , "accessTime" , "" ),
197
- ACCESS_TIME_LT ("ACCESS_TIME_LT" , "d.dataset.inode.accessTime <:accessTime_lt " , "accessTime_lt" , "" ),
198
- ACCESS_TIME_GT ("ACCESS_TIME_GT" , "d.dataset.inode.accessTime >:accessTime_gt " , "accessTime_gt" , "" ),
199
- SIZE ("SIZE" , "d.dataset.inode.size =:size_eq " , "size_eq" , "0" ),
200
- SIZE_LT ("SIZE_LT" , "d.dataset.inode.size <:size_lt " , "size_lt" , "1" ),
201
- SIZE_GT ("SIZE_GT" , "d.dataset.inode.size >:size_gt " , "size_gt" , "0" );
159
+ PUBLIC ("PUBLIC" , "d.dataset.public =:public " , "public" , "0" );
202
160
203
161
private final String value ;
204
162
private final String sql ;
0 commit comments