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