1 package de.dlr.shepard.common.util;
2
3 import de.dlr.shepard.common.neo4j.endpoints.OrderByAttribute;
4 import lombok.EqualsAndHashCode;
5 import lombok.Getter;
6 import lombok.NoArgsConstructor;
7 import lombok.ToString;
8
9 @Getter
10 @ToString
11 @EqualsAndHashCode
12 @NoArgsConstructor
13 public class QueryParamHelper {
14
15 private String name;
16 private PaginationHelper pagination;
17 private Long parentId;
18 private Long predecessorId;
19 private Long successorId;
20 private OrderByAttribute orderByAttribute;
21 private Boolean orderDesc;
22
23 public QueryParamHelper withName(String name) {
24 this.name = name;
25 return this;
26 }
27
28 public boolean hasName() {
29 return this.name != null;
30 }
31
32 public QueryParamHelper withPageAndSize(int page, int size) {
33 this.pagination = new PaginationHelper(page, size);
34 return this;
35 }
36
37 public boolean hasPagination() {
38 return this.pagination != null;
39 }
40
41 public QueryParamHelper withPredecessorId(long predecessorId) {
42 this.predecessorId = predecessorId;
43 return this;
44 }
45
46 public boolean hasPredecessorId() {
47 return this.predecessorId != null;
48 }
49
50 public QueryParamHelper withSuccessorId(long successorId) {
51 this.successorId = successorId;
52 return this;
53 }
54
55 public boolean hasSuccessorId() {
56 return this.successorId != null;
57 }
58
59 public QueryParamHelper withParentId(long parentId) {
60 this.parentId = parentId;
61 return this;
62 }
63
64 public boolean hasParentId() {
65 return this.parentId != null;
66 }
67
68 public QueryParamHelper withOrderByAttribute(OrderByAttribute orderBy, Boolean orderDesc) {
69 this.orderByAttribute = orderBy;
70 this.orderDesc = orderDesc;
71 return this;
72 }
73
74 public boolean hasOrderByAttribute() {
75 return this.orderByAttribute != null;
76 }
77 }