View Javadoc
1   package net.avcompris.examples.users3.dao;
2   
3   import javax.annotation.Nullable;
4   
5   import net.avcompris.commons3.dao.EntitiesDtoQuery;
6   import net.avcompris.examples.users3.query.UserFiltering;
7   
8   public interface UsersDtoQuery extends EntitiesDtoQuery<UserFiltering, UserFiltering.Field> {
9   
10  	@Override
11  	@Nullable
12  	UserFiltering getFiltering();
13  
14  	enum SortBy implements EntitiesDtoQuery.SortBy {
15  
16  		SORT_BY_USERNAME, SORT_BY_USERNAME_DESC, //
17  		SORT_BY_ROLENAME, SORT_BY_ROLENAME_DESC, //
18  		SORT_BY_ENABLED, SORT_BY_ENABLED_DESC, //
19  		SORT_BY_CREATED_AT, SORT_BY_CREATED_AT_DESC, //
20  		SORT_BY_UPDATED_AT, SORT_BY_UPDATED_AT_DESC, //
21  		SORT_BY_LAST_ACTIVE_AT, SORT_BY_LAST_ACTIVE_AT_DESC, //
22  		SORT_BY_REVISION, SORT_BY_REVISION_DESC; //
23  
24  		/**
25  		 * For speed’s sake.
26  		 */
27  		private final String sqlField;
28  
29  		/**
30  		 * For speed’s sake.
31  		 */
32  		private final boolean isDesc;
33  
34  		SortBy() {
35  
36  			this.sqlField = EntitiesDtoQuery.SortBy.toSqlField(name());
37  			this.isDesc = EntitiesDtoQuery.SortBy.isDesc(name());
38  		}
39  
40  		@Override
41  		public String toSqlField() {
42  
43  			return sqlField;
44  		}
45  
46  		@Override
47  		public boolean isDesc() {
48  
49  			return isDesc;
50  		}
51  	}
52  
53  	enum Expand implements EntitiesDtoQuery.Expand {
54  		EXPAND_ALL, //
55  		EXPAND_USERNAME, //
56  		EXPAND_ROLENAME, //
57  		EXPAND_ENABLED, //
58  		EXPAND_CREATED_AT, //
59  		EXPAND_UPDATED_AT, //
60  		EXPAND_LAST_ACTIVE_AT, //
61  	}
62  
63  	@Override
64  	SortBy[] getSortBys();
65  
66  	@Override
67  	Expand[] getExpands();
68  
69  	// @Override
70  	UsersDtoQuery setFiltering(@Nullable UserFiltering filtering);
71  
72  	UsersDtoQuery setSortBys(SortBy... sortBys);
73  
74  	UsersDtoQuery setExpands(Expand... expands);
75  
76  	@Override
77  	UsersDtoQuery setStart(int start);
78  
79  	@Override
80  	UsersDtoQuery setLimit(int limit);
81  }