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 / MultiChoiceOrOtherDto.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.MultiChoiceOrOtherSequenceProvider;
25 import org.openecomp.sdcrests.vendorlicense.types.validation.OtherChoiceValidation;
26
27 import java.util.Set;
28 import javax.validation.constraints.NotNull;
29 import javax.validation.constraints.Size;
30
31
32 @GroupSequenceProvider(value = MultiChoiceOrOtherSequenceProvider.class)
33 public class MultiChoiceOrOtherDto<E extends Enum<E>> {
34   @NotNull
35   @Size(min = 1, message = "must contain at least 1 choice.")
36   private Set<E> choices;
37   @NotNull(message = "may not be null when choices is set to 'Other'.",
38       groups = OtherChoiceValidation.class)
39   private String other;
40
41   public Set<E> getChoices() {
42     return choices;
43   }
44
45   public void setChoices(Set<E> choices) {
46     this.choices = choices;
47   }
48
49   public String getOther() {
50     return other;
51   }
52
53   public void setOther(String other) {
54     this.other = other;
55   }
56
57   @Override
58   public boolean equals(Object obj) {
59     if (this == obj) {
60       return true;
61     }
62     if (obj == null || getClass() != obj.getClass()) {
63       return false;
64     }
65
66     MultiChoiceOrOtherDto<?> that = (MultiChoiceOrOtherDto<?>) obj;
67
68     return choices != null ? choices.equals(that.choices)
69         : that.choices == null && (other != null ? other.equals(that.other) : that.other == null);
70
71   }
72
73   @Override
74   public int hashCode() {
75     int result = choices != null ? choices.hashCode() : 0;
76     result = 31 * result + (other != null ? other.hashCode() : 0);
77     return result;
78   }
79 }