Catalog alignment
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / components / ResourceMetadataDataDefinition.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.sdc.be.datatypes.components;
22
23 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFieldsExtractor;
24 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
25
26
27 public class ResourceMetadataDataDefinition extends ComponentMetadataDataDefinition {
28
29     private String vendorName;
30     private String vendorRelease;
31     private String resourceVendorModelNumber;
32     private ResourceTypeEnum resourceType = ResourceTypeEnum.VFC; // ResourceType.VFC
33     // is
34     // default
35     private Boolean isAbstract;
36     private String cost;
37     private String licenseType;
38     private String toscaResourceName;
39
40     public ResourceMetadataDataDefinition() {
41         super();
42         resourceVendorModelNumber = "";
43     }
44
45     public ResourceMetadataDataDefinition(ResourceMetadataDataDefinition other) {
46         super(other);
47         this.vendorName = other.getVendorName();
48         this.vendorRelease = other.getVendorRelease();
49         this.resourceVendorModelNumber = other.getResourceVendorModelNumber();
50         this.isAbstract = other.isHighestVersion();
51         this.resourceType = other.getResourceType();
52         this.toscaResourceName = other.getToscaResourceName();
53         }
54
55         public ResourceMetadataDataDefinition(JsonPresentationFieldsExtractor extractor){
56                 super(extractor);
57                 this.vendorName = extractor.getVendorName();
58                 this.vendorRelease = extractor.getVendorRelease();
59                 this.resourceVendorModelNumber = extractor.getResourceVendorModelNumber();
60                 this.isAbstract = extractor.isAbstract();
61                 this.resourceType = extractor.getResourceType();
62                 this.toscaResourceName = extractor.getToscaResourceName();
63     }
64
65     public String getVendorName() {
66         return vendorName;
67     }
68
69     public void setVendorName(String vendorName) {
70         this.vendorName = vendorName;
71     }
72
73     public String getVendorRelease() {
74         return vendorRelease;
75     }
76
77     public void setVendorRelease(String vendorRelease) {
78         this.vendorRelease = vendorRelease;
79     }
80
81     public String getResourceVendorModelNumber() {
82         return resourceVendorModelNumber;
83     }
84
85     public void setResourceVendorModelNumber(String resourceVendorModelNumber) {
86         this.resourceVendorModelNumber = resourceVendorModelNumber;
87     }
88
89
90     public ResourceTypeEnum getResourceType() {
91         return resourceType;
92     }
93
94     public void setResourceType(ResourceTypeEnum resourceType) {
95         this.resourceType = resourceType;
96     }
97
98     public Boolean isAbstract() {
99         return isAbstract;
100     }
101
102     public void setAbstract(Boolean isAbstract) {
103         this.isAbstract = isAbstract;
104     }
105
106     public String getCost() {
107         return cost;
108     }
109
110     public void setCost(String cost) {
111         this.cost = cost;
112     }
113
114     public String getLicenseType() {
115         return licenseType;
116     }
117
118     public void setLicenseType(String licenseType) {
119         this.licenseType = licenseType;
120     }
121
122     public String getToscaResourceName() {
123         return toscaResourceName;
124     }
125
126     public void setToscaResourceName(String toscaResourceName) {
127         this.toscaResourceName = toscaResourceName;
128     }
129
130     @Override
131     public String toString() {
132         return "ResourceMetadataDataDefinition [vendorName=" + vendorName + ", vendorRelease=" + vendorRelease
133                 + ", resourceVendorModelNumber=" + resourceVendorModelNumber + ", resourceType=" + resourceType
134                 + ", isAbstract=" + isAbstract + super.toString() + "]";
135     }
136
137     @Override
138     public int hashCode() {
139         final int prime = 31;
140         int result = super.hashCode();
141         result = prime * result + ((cost == null) ? 0 : cost.hashCode());
142         result = prime * result + ((isAbstract == null) ? 0 : isAbstract.hashCode());
143         result = prime * result + ((licenseType == null) ? 0 : licenseType.hashCode());
144         result = prime * result + ((resourceType == null) ? 0 : resourceType.hashCode());
145         result = prime * result + ((vendorName == null) ? 0 : vendorName.hashCode());
146         result = prime * result + ((vendorRelease == null) ? 0 : vendorRelease.hashCode());
147         result = prime * result + ((resourceVendorModelNumber == null) ? 0 : resourceVendorModelNumber.hashCode());
148         return result;
149     }
150
151     @Override
152     public boolean equals(Object obj) {
153         if (this == obj) {
154             return true;
155         }
156         if (!super.equals(obj)) {
157             return false;
158         }
159         if (getClass() != obj.getClass()) {
160             return false;
161         }
162         ResourceMetadataDataDefinition other = (ResourceMetadataDataDefinition) obj;
163         if (cost == null) {
164             if (other.cost != null) {
165                 return false;
166             }
167         } else if (!cost.equals(other.cost)) {
168             return false;
169         }
170         if (isAbstract == null) {
171             if (other.isAbstract != null) {
172                 return false;
173             }
174         } else if (!isAbstract.equals(other.isAbstract)) {
175             return false;
176         }
177         if (licenseType == null) {
178             if (other.licenseType != null) {
179                 return false;
180             }
181         } else if (!licenseType.equals(other.licenseType)) {
182             return false;
183         }
184         if (resourceType != other.resourceType) {
185             return false;
186         }
187         if (vendorName == null) {
188             if (other.vendorName != null) {
189                 return false;
190             }
191         } else if (!vendorName.equals(other.vendorName)) {
192             return false;
193         }
194         if (vendorRelease == null) {
195             if (other.vendorRelease != null) {
196                 return false;
197             }
198         }
199         if (toscaResourceName == null) {
200             if (other.toscaResourceName != null) {
201                 return false;
202             }
203         } else if (!vendorRelease.equals(other.vendorRelease)) {
204             return false;
205         }
206         if (resourceVendorModelNumber == null) {
207             if (other.resourceVendorModelNumber != null) {
208                 return false;
209             }
210         } else if (!resourceVendorModelNumber.equals(other.resourceVendorModelNumber)) {
211             return false;
212         }
213
214         return super.equals(obj);
215     }
216
217     @Override
218     public String getActualComponentType() {
219         return getResourceType().getValue();
220     }
221
222 }