push addional code
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / vendor-license-rest / vendor-license-rest-types / src / main / java / org / openecomp / sdcrests / vendorlicense / types / ChoiceOrOtherDto.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.openecomp.sdcrests.vendorlicense.types;
22
23 import org.hibernate.validator.group.GroupSequenceProvider;
24 import org.openecomp.sdcrests.vendorlicense.types.validation.ChoiceOrOtherSequenceProvider;
25 import org.openecomp.sdcrests.vendorlicense.types.validation.OtherChoiceValidation;
26
27 import javax.validation.constraints.NotNull;
28
29 @GroupSequenceProvider(value = ChoiceOrOtherSequenceProvider.class)
30 public class ChoiceOrOtherDto<E extends Enum<E>> {
31   @NotNull
32   private E choice;
33   @NotNull(message = "may not be null when choice is set to 'Other'.",
34       groups = OtherChoiceValidation.class)
35   private String other;
36
37   public E getChoice() {
38     return choice;
39   }
40
41   public void setChoice(E choice) {
42     this.choice = choice;
43   }
44
45   public String getOther() {
46     return other;
47   }
48
49   public void setOther(String other) {
50     this.other = other;
51   }
52
53   @Override
54   public boolean equals(Object obj) {
55     if (this == obj) {
56       return true;
57     }
58     if (obj == null || getClass() != obj.getClass()) {
59       return false;
60     }
61
62     ChoiceOrOtherDto<?> that = (ChoiceOrOtherDto<?>) obj;
63
64     return choice != null ? choice.equals(that.choice)
65         : that.choice == null && (other != null ? other.equals(that.other) : that.other == null);
66
67   }
68
69   @Override
70   public int hashCode() {
71     int result = choice != null ? choice.hashCode() : 0;
72     result = 31 * result + (other != null ? other.hashCode() : 0);
73     return result;
74   }
75 }