e434c83409f2ad787f4408f71ef056f13130379b
[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         private int nullSafeCompare(String one, String two){
35                 if(one != null && two != null){
36                         return one.compareTo(two);
37                 }
38                 if(one == null && two != null){
39                         return -1;
40                 }
41                 if(one != null && two == null){
42                         return 1;
43                 }
44                 return 0;
45         }
46         @Override
47         public int comparePriority(DroolsPdp other){
48                 if(nullSafeCompare(this.getSiteName(),other.getSiteName()) == 0){
49                 if(this.getPriority() != other.getPriority()){
50                         return this.getPriority() - other.getPriority();
51                 }
52                 return this.getPdpId().compareTo(other.getPdpId());
53                 } else {
54                         return nullSafeCompare(this.getSiteName(),other.getSiteName());
55                 }
56         }
57         @Override
58         public int comparePriority(DroolsPdp other, String previousSite){
59                 if(previousSite == null || previousSite.equals("")){
60                         return comparePriority(other);
61                 }
62                 if(nullSafeCompare(this.getSiteName(),other.getSiteName()) == 0){
63                         if(this.getPriority() != other.getPriority()){
64                                 return this.getPriority() - other.getPriority();
65                         }
66                         return this.getPdpId().compareTo(other.getPdpId());
67                 } else {
68                         return nullSafeCompare(this.getSiteName(),other.getSiteName());
69                 }
70         }
71 }