File tree Expand file tree Collapse file tree 16 files changed +291
-44
lines changed
main/java/io/securecodebox/persistence/defectdojo/model
test/java/io/securecodebox/persistence/defectdojo/model Expand file tree Collapse file tree 16 files changed +291
-44
lines changed Original file line number Diff line number Diff line change 1616@ AllArgsConstructor
1717@ EqualsAndHashCode
1818@ JsonInclude (JsonInclude .Include .NON_NULL )
19- public final class Endpoint implements Model {
19+ public final class Endpoint implements Model , HasId {
2020 @ JsonProperty
2121 private long id ;
2222
@@ -49,10 +49,11 @@ public final class Endpoint implements Model {
4949
5050 @ Override
5151 public boolean equalsQueryString (Map <String , Object > queryParams ) {
52- if (queryParams == null ) {
52+ if (QueryParamsComparator . isNull ( queryParams ) ) {
5353 return false ;
5454 }
5555
56- return queryParams . containsKey ( "id" ) && queryParams . get ( "id" ). equals ( this . id );
56+ return QueryParamsComparator . isIdEqual ( this , queryParams );
5757 }
58+
5859}
Original file line number Diff line number Diff line change 1717@ AllArgsConstructor
1818@ EqualsAndHashCode
1919@ JsonInclude (JsonInclude .Include .NON_NULL )
20- public final class Engagement implements Model {
20+ public final class Engagement implements Model , HasId , HasName {
2121 @ JsonProperty ("branch_tag" )
2222 private String branch ;
2323
2424 @ JsonProperty
25- private Long id ;
25+ private long id ;
2626
2727 @ JsonProperty
2828 private String name ;
@@ -94,15 +94,15 @@ public final class Engagement implements Model {
9494
9595 @ Override
9696 public boolean equalsQueryString (Map <String , Object > queryParams ) {
97- if (queryParams == null ) {
97+ if (QueryParamsComparator . isNull ( queryParams ) ) {
9898 return false ;
9999 }
100100
101- if (queryParams . containsKey ( "id" ) && queryParams . get ( "id" ) != null && queryParams . get ( "id" ). equals ( this . id )) {
101+ if (QueryParamsComparator . isIdEqual ( this , queryParams )) {
102102 return true ;
103103 }
104104
105- if (queryParams . containsKey ( "name" ) && queryParams . get ( "name" ) != null && queryParams . get ( "name" ). equals ( this . name )) {
105+ if (QueryParamsComparator . isNameEqual ( this , queryParams )) {
106106 return true ;
107107 }
108108
Original file line number Diff line number Diff line change 2121@ AllArgsConstructor
2222@ EqualsAndHashCode
2323@ JsonInclude (JsonInclude .Include .NON_NULL )
24- public final class Finding implements Model {
24+ public final class Finding implements Model , HasId {
2525 @ JsonProperty
2626 private long id ;
2727
@@ -121,11 +121,11 @@ public String getNumericalSeverity() {
121121
122122 @ Override
123123 public boolean equalsQueryString (Map <String , Object > queryParams ) {
124- if (queryParams == null ) {
124+ if (QueryParamsComparator . isNull ( queryParams ) ) {
125125 return false ;
126126 }
127127
128- return queryParams . containsKey ( "id" ) && queryParams . get ( "id" ). equals ( this . id );
128+ return QueryParamsComparator . isIdEqual ( this , queryParams );
129129 }
130130
131131 public enum Severity {
Original file line number Diff line number Diff line change 1717@ AllArgsConstructor
1818@ EqualsAndHashCode
1919@ JsonInclude (JsonInclude .Include .NON_NULL )
20- public final class Group implements Model {
20+ public final class Group implements Model , HasId , HasName {
2121 @ JsonProperty
2222 private long id ;
2323
@@ -36,15 +36,15 @@ public final class Group implements Model {
3636
3737 @ Override
3838 public boolean equalsQueryString (Map <String , Object > queryParams ) {
39- if (queryParams == null ) {
39+ if (QueryParamsComparator . isNull ( queryParams ) ) {
4040 return false ;
4141 }
4242
43- if (queryParams . containsKey ( "id" ) && queryParams . get ( "id" ). equals ( this . id )) {
43+ if (QueryParamsComparator . isIdEqual ( this , queryParams )) {
4444 return true ;
4545 }
4646
47- if (queryParams . containsKey ( "name" ) && queryParams . get ( "name" ). equals ( this . name )) {
47+ if (QueryParamsComparator . isNameEqual ( this , queryParams )) {
4848 return true ;
4949 }
5050
Original file line number Diff line number Diff line change 1+ // SPDX-FileCopyrightText: the secureCodeBox authors
2+ //
3+ // SPDX-License-Identifier: Apache-2.0
4+
5+ package io .securecodebox .persistence .defectdojo .model ;
6+
7+ /**
8+ * Interface to mark {@link Model models} which have an id
9+ * <p>
10+ * This type is package private because it is an implementation detail of the models and
11+ * z should not be used outside of this package.
12+ * </p>
13+ */
14+ interface HasId {
15+ long getId ();
16+
17+ void setId (long id );
18+ }
Original file line number Diff line number Diff line change 1+ // SPDX-FileCopyrightText: the secureCodeBox authors
2+ //
3+ // SPDX-License-Identifier: Apache-2.0
4+
5+ package io .securecodebox .persistence .defectdojo .model ;
6+
7+ /**
8+ * Interface to mark {@link Model models} which have a name
9+ * <p>
10+ * This type is package private because it is an implementation detail of the models and
11+ * z should not be used outside of this package.
12+ * </p>
13+ */
14+ interface HasName {
15+ String getName ();
16+
17+ void setName (String id );
18+ }
Original file line number Diff line number Diff line change 1717@ AllArgsConstructor
1818@ EqualsAndHashCode
1919@ JsonInclude (JsonInclude .Include .NON_NULL )
20- public final class Product implements Model {
20+ public final class Product implements Model , HasId , HasName {
2121 @ JsonProperty
2222 private long id ;
2323
@@ -53,15 +53,15 @@ public final class Product implements Model {
5353
5454 @ Override
5555 public boolean equalsQueryString (Map <String , Object > queryParams ) {
56- if (queryParams == null ) {
56+ if (QueryParamsComparator . isNull ( queryParams ) ) {
5757 return false ;
5858 }
5959
60- if (queryParams . containsKey ( "id" ) && queryParams . get ( "id" ). equals ( this . id )) {
60+ if (QueryParamsComparator . isIdEqual ( this , queryParams )) {
6161 return true ;
6262 }
6363
64- if (queryParams . containsKey ( "name" ) && queryParams . get ( "name" ). equals ( this . name )) {
64+ if (QueryParamsComparator . isNameEqual ( this , queryParams )) {
6565 return true ;
6666 }
6767
Original file line number Diff line number Diff line change 1616@ AllArgsConstructor
1717@ EqualsAndHashCode
1818@ JsonInclude (JsonInclude .Include .NON_NULL )
19- public final class ProductType implements Model {
19+ public final class ProductType implements Model , HasId , HasName {
2020 @ JsonProperty
2121 private long id ;
2222
@@ -32,15 +32,15 @@ public final class ProductType implements Model {
3232
3333 @ Override
3434 public boolean equalsQueryString (Map <String , Object > queryParams ) {
35- if (queryParams == null ) {
35+ if (QueryParamsComparator . isNull ( queryParams ) ) {
3636 return false ;
3737 }
3838
39- if (queryParams . containsKey ( "id" ) && queryParams . get ( "id" ). equals ( this . id )) {
39+ if (QueryParamsComparator . isIdEqual ( this , queryParams )) {
4040 return true ;
4141 }
4242
43- if (queryParams . containsKey ( "name" ) && queryParams . get ( "name" ). equals ( this . name )) {
43+ if (QueryParamsComparator . isNameEqual ( this , queryParams )) {
4444 return true ;
4545 }
4646
Original file line number Diff line number Diff line change 1+ // SPDX-FileCopyrightText: the secureCodeBox authors
2+ //
3+ // SPDX-License-Identifier: Apache-2.0
4+
5+ package io .securecodebox .persistence .defectdojo .model ;
6+
7+ import java .util .Map ;
8+
9+ /**
10+ * Pure static helper class
11+ * <p>
12+ * This type is package private because it is an implementation detail of the models and
13+ * should not be used outside of this package.
14+ * </p>
15+ */
16+ final class QueryParamsComparator {
17+
18+ static final String QUERY_PARAM_KEY_FOR_ID = "id" ;
19+ static final String QUERY_PARAM_KEY_FOR_NAME = "name" ;
20+
21+ private QueryParamsComparator () {
22+ super ();
23+ }
24+
25+ static boolean isNull (Object o ) {
26+ return o == null ;
27+ }
28+
29+ static boolean isIdEqual (HasId model , Map <String , Object > queryParams ) {
30+ if (isNull (model )) {
31+ return false ;
32+ }
33+
34+ if (isNull (queryParams )) {
35+ return false ;
36+ }
37+
38+ if (!queryParams .containsKey (QUERY_PARAM_KEY_FOR_ID )) {
39+ return false ;
40+ }
41+
42+ // FIXME: Since th generic type for value is Object, possible NPE here!
43+ return queryParams .get (QUERY_PARAM_KEY_FOR_ID ).equals (model .getId ());
44+ }
45+
46+ static boolean isNameEqual (HasName model , Map <String , Object > queryParams ) {
47+ if (isNull (model )) {
48+ return false ;
49+ }
50+
51+ if (isNull (queryParams )) {
52+ return false ;
53+ }
54+
55+ if (!queryParams .containsKey (QUERY_PARAM_KEY_FOR_NAME )) {
56+ return false ;
57+ }
58+
59+ if (isNull (queryParams .get (QUERY_PARAM_KEY_FOR_NAME ))) {
60+ return false ;
61+ }
62+
63+ return queryParams .get (QUERY_PARAM_KEY_FOR_NAME ).equals (model .getName ());
64+ }
65+ }
Original file line number Diff line number Diff line change 1717@ AllArgsConstructor
1818@ EqualsAndHashCode
1919@ JsonInclude (JsonInclude .Include .NON_NULL )
20- public final class RiskAcceptance implements Model {
20+ public final class RiskAcceptance implements Model , HasId {
2121 @ JsonProperty
2222 private long id ;
2323
@@ -58,10 +58,10 @@ public final class RiskAcceptance implements Model {
5858
5959 @ Override
6060 public boolean equalsQueryString (Map <String , Object > queryParams ) {
61- if (queryParams == null ) {
61+ if (QueryParamsComparator . isNull ( queryParams ) ) {
6262 return false ;
6363 }
6464
65- return queryParams . containsKey ( "id" ) && queryParams . get ( "id" ). equals ( this . id );
65+ return QueryParamsComparator . isIdEqual ( this , queryParams );
6666 }
6767}
You can’t perform that action at this time.
0 commit comments