Fix checkstyle for features submodules.
[policy/drools-pdp.git] / feature-active-standby-management / src / main / java / org / onap / policy / drools / activestandby / DroolsPdpObject.java
1 /*
2  * ============LICENSE_START=======================================================
3  * feature-active-standby-management
4  * ================================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.drools.activestandby;
22
23
24 public abstract class DroolsPdpObject implements DroolsPdp {
25
26     @Override
27     public boolean equals(Object other) {
28         if (other instanceof DroolsPdp) {
29             return this.getPdpId().equals(((DroolsPdp)other).getPdpId());
30         } else {
31             return false;
32         }
33     }
34     
35     @Override
36     public int hashCode() {
37         final int prime = 31;
38         int result = 1;
39         result = prime * result + (this.getPdpId() == null ? 0 : this.getPdpId().hashCode());
40         result = prime * result + (this.getSiteName() == null ? 0 : this.getSiteName().hashCode());
41         result = prime * result + this.getPriority();
42         return super.hashCode();
43     }
44     
45     private int nullSafeCompare(String one, String two) {
46         if (one != null && two != null) {
47             return one.compareTo(two);
48         }
49         if (one == null && two != null) {
50             return -1;
51         }
52         if (one != null && two == null) {
53             return 1;
54         }
55         return 0;
56     }
57     
58     @Override
59     public int comparePriority(DroolsPdp other) {
60         if (nullSafeCompare(this.getSiteName(),other.getSiteName()) == 0) {
61             if (this.getPriority() != other.getPriority()) {
62                 return this.getPriority() - other.getPriority();
63             }
64             return this.getPdpId().compareTo(other.getPdpId());
65         } else {
66             return nullSafeCompare(this.getSiteName(),other.getSiteName());
67         }
68     }
69     
70     @Override
71     public int comparePriority(DroolsPdp other, String previousSite) {
72         if (previousSite == null || previousSite.isEmpty()) {
73             return comparePriority(other);
74         }
75         if (nullSafeCompare(this.getSiteName(),other.getSiteName()) == 0) {
76             if (this.getPriority() != other.getPriority()) {
77                 return this.getPriority() - other.getPriority();
78             }
79             return this.getPdpId().compareTo(other.getPdpId());
80         } else {
81             return nullSafeCompare(this.getSiteName(),other.getSiteName());
82         }
83     }
84 }