2b159f8127297ed2cf958eaf7b8cfd6abf01e410
[vid.git] / vid-app-common / src / main / java / org / onap / vid / mso / rest / RequestDetails.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
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.vid.mso.rest;
22
23 import com.fasterxml.jackson.annotation.JsonAnyGetter;
24 import com.fasterxml.jackson.annotation.JsonAnySetter;
25 import com.fasterxml.jackson.annotation.JsonIgnore;
26 import com.fasterxml.jackson.annotation.JsonInclude;
27 import com.fasterxml.jackson.annotation.JsonProperty;
28 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
29 import org.apache.commons.lang3.builder.EqualsBuilder;
30 import org.apache.commons.lang3.builder.HashCodeBuilder;
31 import org.apache.commons.lang3.builder.ToStringBuilder;
32 import org.onap.vid.domain.mso.CloudConfiguration;
33 import org.onap.vid.domain.mso.ModelInfo;
34 import org.onap.vid.domain.mso.RequestInfo;
35 import org.onap.vid.domain.mso.RequestParameters;
36 import org.onap.vid.domain.mso.SubscriberInfo;
37
38 import java.util.HashMap;
39 import java.util.List;
40 import java.util.Map;
41
42
43 /**
44  * aggregates the context, configuraiton and detailed parameters associated with the request into a single structure.
45  */
46 @JsonInclude(JsonInclude.Include.NON_NULL)
47 @JsonPropertyOrder({
48         "cloudConfiguration",
49         "modelInfo",
50         "relatedModelList",
51         "requestInfo",
52         "subscriberInfo",
53         "requestParameters",
54         "configurationParameters"
55 })
56 public class RequestDetails{
57
58
59
60     /** The cloud configuration. */
61     @JsonProperty("cloudConfiguration")
62     private CloudConfiguration cloudConfiguration;
63
64     /** The model info. */
65     @JsonProperty("modelInfo")
66     private ModelInfo modelInfo;
67
68     /** The related model list. */
69     @JsonProperty("relatedInstanceList")
70     private List<RelatedInstanceWrapper> relatedInstanceList;
71
72     /** The request info. */
73     @JsonProperty("requestInfo")
74     private RequestInfo requestInfo;
75
76     /** The subscriber info. */
77     @JsonProperty("subscriberInfo")
78     private SubscriberInfo subscriberInfo;
79
80     /** The request parameters. */
81     @JsonProperty("requestParameters")
82     private RequestParameters requestParameters;
83
84     @JsonProperty("configurationParameters")
85     protected List<Map<String, String>> configurationParameters;
86
87     /** The additional properties. */
88     @JsonIgnore
89     private Map<String, Object> additionalProperties = new HashMap<String, Object>();
90
91     /**
92      * Gets the cloud configuration.
93      *
94      * @return     The cloudConfiguration
95      */
96     @JsonProperty("cloudConfiguration")
97     public CloudConfiguration getCloudConfiguration() {
98         return cloudConfiguration;
99     }
100
101     /**
102      * Sets the cloud configuration.
103      *
104      * @param cloudConfiguration     The cloudConfiguration
105      */
106     @JsonProperty("cloudConfiguration")
107     public void setCloudConfiguration(CloudConfiguration cloudConfiguration) {
108         this.cloudConfiguration = cloudConfiguration;
109     }
110
111     /**
112      * Gets the model info.
113      *
114      * @return     The modelInfo
115      */
116     @JsonProperty("modelInfo")
117     public ModelInfo getModelInfo() {
118         return modelInfo;
119     }
120
121     /**
122      * Sets the model info.
123      *
124      * @param modelInfo     The modelInfo
125      */
126     @JsonProperty("modelInfo")
127     public void setModelInfo(ModelInfo modelInfo) {
128         this.modelInfo = modelInfo;
129     }
130     /**
131      * Gets the related instance list.
132      *
133      * @return     The relatedInstanceList
134      */
135     @JsonProperty("relatedInstanceList")
136     public List<RelatedInstanceWrapper> getRelatedInstanceList() {
137         return relatedInstanceList;
138     }
139
140     /**
141      * Sets the related model list.
142      *
143      * @param relatedInstanceList     The relatedInstanceList
144      */
145     @JsonProperty("relatedInstanceList")
146     public void setRelatedInstanceList(List<RelatedInstanceWrapper> relatedInstanceList) {
147         this.relatedInstanceList = relatedInstanceList;
148     }
149
150     /**
151      * Gets the request info.
152      *
153      * @return     The requestInfo
154      */
155     @JsonProperty("requestInfo")
156     public RequestInfo getRequestInfo() {
157         return requestInfo;
158     }
159
160     /**
161      * Sets the request info.
162      *
163      * @param requestInfo     The requestInfo
164      */
165     @JsonProperty("requestInfo")
166     public void setRequestInfo(RequestInfo requestInfo) {
167         this.requestInfo = requestInfo;
168     }
169
170     /**
171      * Gets the subscriber info.
172      *
173      * @return     The subscriberInfo
174      */
175     @JsonProperty("subscriberInfo")
176     public SubscriberInfo getSubscriberInfo() {
177         return subscriberInfo;
178     }
179
180     /**
181      * Sets the subscriber info.
182      *
183      * @param subscriberInfo     The subscriberInfo
184      */
185     @JsonProperty("subscriberInfo")
186     public void setSubscriberInfo(SubscriberInfo subscriberInfo) {
187         this.subscriberInfo = subscriberInfo;
188     }
189
190     /* (non-Javadoc)
191      * @see org.onap.vid.domain.mso.RequestDetails#toString()
192      */
193     @Override
194     public String toString() {
195         return ToStringBuilder.reflectionToString(this);
196     }
197
198     /* (non-Javadoc)
199      * @see org.onap.vid.domain.mso.RequestDetails#getAdditionalProperties()
200      */
201     @JsonAnyGetter
202     public Map<String, Object> getAdditionalProperties() {
203         return this.additionalProperties;
204     }
205
206     /* (non-Javadoc)
207      * @see org.onap.vid.domain.mso.RequestDetails#setAdditionalProperty(java.lang.String, java.lang.Object)
208      */
209     @JsonAnySetter
210     public void setAdditionalProperty(String name, Object value) {
211         this.additionalProperties.put(name, value);
212     }
213
214     @JsonProperty("configurationParameters")
215     public List<Map<String, String>> getConfigurationParameters() {
216         return configurationParameters;
217     }
218
219     @JsonProperty("configurationParameters")
220     public void setConfigurationParameters(List<Map<String, String>> configurationParameters) {
221         this.configurationParameters = configurationParameters;
222     }
223
224     /* (non-Javadoc)
225      * @see org.onap.vid.domain.mso.RequestDetails#hashCode()
226      */
227     @Override
228     public int hashCode() {
229         return new HashCodeBuilder()
230                 .append(cloudConfiguration)
231                 .append(modelInfo)
232                 .append(relatedInstanceList)
233                 .append(requestInfo)
234                 .append(getRequestParameters())
235                 .append(subscriberInfo)
236                 .append(additionalProperties)
237                 .append(configurationParameters)
238                 .toHashCode();
239     }
240
241     /* (non-Javadoc)
242      * @see org.onap.vid.domain.mso.RequestDetails#equals(java.lang.Object)
243      */
244     @Override
245     public boolean equals(Object other) {
246         if (other == this) {
247             return true;
248         }
249         if (!(other instanceof RequestDetails)) {
250             return false;
251         }
252         RequestDetails rhs = ((RequestDetails) other);
253         return new EqualsBuilder()
254                 .append(cloudConfiguration, rhs.cloudConfiguration)
255                 .append(modelInfo, rhs.modelInfo)
256                 .append(relatedInstanceList, rhs.relatedInstanceList)
257                 .append(requestInfo, rhs.requestInfo)
258                 .append(getRequestParameters(), rhs.getRequestParameters())
259                 .append(subscriberInfo, rhs.subscriberInfo)
260                 .append(additionalProperties, rhs.additionalProperties)
261                 .append(configurationParameters, rhs.configurationParameters)
262                 .isEquals();
263     }
264
265     public RequestParameters getRequestParameters() {
266         return requestParameters;
267     }
268
269     public void setRequestParameters(RequestParameters requestParameters) {
270         this.requestParameters = requestParameters;
271     }
272 }