Add equals & hascode methods
[portal.git] / portal-BE / src / main / java / org / onap / portal / domain / dto / transport / CentralV2UserApp.java
1 /*
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  * Modifications Copyright (c) 2019 Samsung
8  * ===================================================================
9  *
10  * Unless otherwise specified, all software contained herein is licensed
11  * under the Apache License, Version 2.0 (the "License");
12  * you may not use this software except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  *             http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  *
23  * Unless otherwise specified, all documentation contained herein is licensed
24  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
25  * you may not use this documentation except in compliance with the License.
26  * You may obtain a copy of the License at
27  *
28  *             https://creativecommons.org/licenses/by/4.0/
29  *
30  * Unless required by applicable law or agreed to in writing, documentation
31  * distributed under the License is distributed on an "AS IS" BASIS,
32  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33  * See the License for the specific language governing permissions and
34  * limitations under the License.
35  *
36  * ============LICENSE_END============================================
37  *
38  *
39  */
40
41 package org.onap.portal.domain.dto.transport;
42
43 import java.io.Serializable;
44 import java.util.Objects;
45 import lombok.AllArgsConstructor;
46 import lombok.Getter;
47 import lombok.NoArgsConstructor;
48 import lombok.Setter;
49
50 @Getter
51 @Setter
52 @NoArgsConstructor
53 @AllArgsConstructor
54 public class CentralV2UserApp implements Serializable, Comparable {
55
56     private static final long serialVersionUID = 4954830080839125389L;
57
58     private Long userId;
59     private CentralApp app;
60     private CentralV2Role role;
61     private Integer priority;
62
63     public int compareTo(Object other) {
64         CentralV2UserApp castOther = (CentralV2UserApp) other;
65
66         Long c1 = (this.getUserId() == null ? 0 : this.getUserId()) + (this.priority == null ? 0 : this.priority);
67         Long c2 = (castOther.getUserId() == null ? 0 : castOther.getUserId());
68         c2 += (castOther.getApp() == null || castOther.getApp().getId() == null ? 0 : castOther.getApp().getId());
69         c2 += (castOther.priority == null ? 0 : castOther.priority);
70
71         return c1.compareTo(c2);
72     }
73
74     @Override
75     public int hashCode() {
76         final int prime = 31;
77         int result = 1;
78         result = prime * result + ((app == null) ? 0 : app.hashCode());
79         result = prime * result + ((priority == null) ? 0 : priority.hashCode());
80         result = prime * result + ((role == null) ? 0 : role.hashCode());
81         result = prime * result + ((userId == null) ? 0 : userId.hashCode());
82         return result;
83     }
84
85     @Override
86     public boolean equals(Object other) {
87         if (this == other) {
88             return true;
89         }
90         if (!(other instanceof CentralV2UserApp)) {
91             return false;
92         }
93         CentralV2UserApp castOther = (CentralV2UserApp) other;
94         return Objects.equals(this.userId, castOther.userId) &&
95                 Objects.equals(this.app, castOther.app) &&
96                 Objects.equals(this.role, castOther.role) &&
97                 Objects.equals(this.priority, castOther.priority);
98     }
99 }