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