14
14
* </p>
15
15
*/
16
16
final class QueryParamsComparator {
17
-
17
+ /**
18
+ * Query parameter name for id
19
+ */
18
20
static final String QUERY_PARAM_KEY_FOR_ID = "id" ;
21
+ /**
22
+ * Query parameter name for name
23
+ */
19
24
static final String QUERY_PARAM_KEY_FOR_NAME = "name" ;
20
25
26
+ /**
27
+ * Hidden for pure static helper class
28
+ */
21
29
private QueryParamsComparator () {
22
30
super ();
23
31
}
24
32
33
+ /**
34
+ * Determines whether the given object is {@code null} or not
35
+ *
36
+ * @param o maybe {@code null}
37
+ * @return {@code true} if {@code o} is {@code null}, else {@code false}
38
+ */
25
39
static boolean isNull (Object o ) {
26
40
return o == null ;
27
41
}
28
42
43
+ /**
44
+ * Determines whether the {@link HasId id} of the given model object is equal the given {@link #QUERY_PARAM_KEY_FOR_ID id}
45
+ * <p>
46
+ * Example:
47
+ * </p>
48
+ * <pre>
49
+ * {@code
50
+ * final var model = ...
51
+ * final var queryParams = new HashMap<String, Object>();
52
+ * queryParams.put(QueryParamsComparator.QUERY_PARAM_KEY_FOR_ID, 42);
53
+ *
54
+ * if (QueryParamsComparator.isIdEqual(model, queryParams)) {
55
+ * ...
56
+ * }
57
+ * }
58
+ * </pre>
59
+ * <p>
60
+ * TODO: What about type conversions? The id is a long in the models, but it may be a string in the map. Should it be treated as equal (42 == "42")?
61
+ *
62
+ * @param model may be {@code null}
63
+ * @param queryParams may be {@code null}
64
+ * @return {@code true} id id is equal, else {@code false}
65
+ */
29
66
static boolean isIdEqual (HasId model , Map <String , Object > queryParams ) {
30
67
if (isNull (model )) {
31
68
return false ;
@@ -46,6 +83,28 @@ static boolean isIdEqual(HasId model, Map<String, Object> queryParams) {
46
83
return queryParams .get (QUERY_PARAM_KEY_FOR_ID ).equals (model .getId ());
47
84
}
48
85
86
+ /**
87
+ * Determines whether the {@link HasName name} of the given model object is equal the given {@link #QUERY_PARAM_KEY_FOR_NAME name}
88
+ * <p>
89
+ * Example:
90
+ * </p>
91
+ * <pre>
92
+ * {@code
93
+ * final var model = ...
94
+ * final var queryParams = new HashMap<String, Object>();
95
+ * queryParams.put(QueryParamsComparator.QUERY_PARAM_KEY_FOR_NAME, "foo");
96
+ *
97
+ * if (QueryParamsComparator.isNameEqual(model, queryParams)) {
98
+ * ...
99
+ * }
100
+ * }
101
+ * </pre>
102
+ * <p>
103
+ *
104
+ * @param model may be {@code null}
105
+ * @param queryParams may be {@code null}
106
+ * @return {@code true} if name is equal, else {@code false}
107
+ */
49
108
static boolean isNameEqual (HasName model , Map <String , Object > queryParams ) {
50
109
if (isNull (model )) {
51
110
return false ;
0 commit comments