8c1d9f2e371a5035ee4e3c509c094547d4ce3b8c
[policy/drools-pdp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * feature-active-standby-management
4  * ================================================================================
5  * Copyright (C) 2017 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         @Override
35         public int hashCode() {
36         final int prime = 31;
37         int result = 1;
38         result = prime * result + (this.getPdpId() == null ? 0 : this.getPdpId().hashCode());
39         result = prime * result + (this.getSiteName() == null ? 0 : this.getSiteName().hashCode());
40         result = prime * result + this.getPriority();
41                 return super.hashCode();
42         }
43         private int nullSafeCompare(String one, String two){
44                 if(one != null && two != null){
45                         return one.compareTo(two);
46                 }
47                 if(one == null && two != null){
48                         return -1;
49                 }
50                 if(one != null && two == null){
51                         return 1;
52                 }
53                 return 0;
54         }
55         @Override
56         public int comparePriority(DroolsPdp other){
57                 if(nullSafeCompare(this.getSiteName(),other.getSiteName()) == 0){
58                 if(this.getPriority() != other.getPriority()){
59                         return this.getPriority() - other.getPriority();
60                 }
61                 return this.getPdpId().compareTo(other.getPdpId());
62                 } else {
63                         return nullSafeCompare(this.getSiteName(),other.getSiteName());
64                 }
65         }
66         @Override
67         public int comparePriority(DroolsPdp other, String previousSite){
68                 if(previousSite == null || previousSite.equals("")){
69                         return comparePriority(other);
70                 }
71                 if(nullSafeCompare(this.getSiteName(),other.getSiteName()) == 0){
72                         if(this.getPriority() != other.getPriority()){
73                                 return this.getPriority() - other.getPriority();
74                         }
75                         return this.getPdpId().compareTo(other.getPdpId());
76                 } else {
77                         return nullSafeCompare(this.getSiteName(),other.getSiteName());
78                 }
79         }
80 }