Catalog alignment
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / catalog / impl / ComponentMessage.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2020 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.catalog.impl;
22
23 import com.fasterxml.jackson.annotation.JsonProperty;
24 import org.openecomp.sdc.be.catalog.api.IComponentMessage;
25 import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum;
26 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
27 import org.openecomp.sdc.be.model.CatalogUpdateTimestamp;
28 import org.openecomp.sdc.be.model.Component;
29 import org.openecomp.sdc.be.model.Resource;
30 import org.openecomp.sdc.be.model.Service;
31 import org.openecomp.sdc.be.model.catalog.CatalogComponent;
32 import org.openecomp.sdc.be.model.category.CategoryDefinition;
33 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
34
35 import java.util.List;
36
37 public class ComponentMessage extends CatalogComponent implements IComponentMessage {
38         /**
39          * 
40          */
41         private static final long serialVersionUID = 3233307722573636520L;
42         @JsonProperty("changeTypeEnum")
43         ChangeTypeEnum changeTypeEnum;
44         @JsonProperty("catalogUpdateTimestamp")
45         private CatalogUpdateTimestamp catalogUpdateTimestamp;
46         private Boolean isArchived;
47
48         public ComponentMessage(Component component, ChangeTypeEnum changeTypeEnum,
49                         CatalogUpdateTimestamp catalogUpdateTimestamp) {
50                 super();
51
52                 this.changeTypeEnum = changeTypeEnum;
53                 this.catalogUpdateTimestamp = catalogUpdateTimestamp;
54
55                 setUniqueId(component.getUniqueId());// uniqueId
56                 setUuid(component.getUUID()); // uuid
57                 setInvariantUUID(component.getInvariantUUID()); // invariantUUID
58
59                 // View Fields
60                 setName(component.getName()); // name
61                 setSystemName(component.getSystemName()); // systemName
62
63                 setVersion(component.getVersion());// version
64                 setLifecycleState(component.getLifecycleState()
65                                 .name()); // lifecycleState
66                 setIcon(component.getIcon()); // icon
67
68                 ComponentTypeEnum componentType = component.getComponentType();
69                 setComponentType(componentType);// componentType
70
71                 buildCategories(component.getCategories()); // categoryNormalizedName,
72                                                                                                         // subCategoryNormalizedName
73                 if (componentType == ComponentTypeEnum.SERVICE) {
74                         Service service = (Service) component;
75                         setDistributionStatus(service.getDistributionStatus()
76                                         .name()); // distributionStatus
77                 } else {
78                         Resource r = (Resource) component;
79                         this.setResourceType(r.getResourceType()
80                                         .name()); // resourceType
81                 }
82                 setIsArchived(component.isArchived()); // isArchived
83                 setIsHighestVersion(component.isHighestVersion()); // isHighestVersion
84                 setDescription(component.getDescription()); // description
85                 if (component.getTags() != null) {
86                         setTags(component.getTags()); // tags
87                 }
88                 setLastUpdateDate(component.getLastUpdateDate());// lastUpdateDate
89                 setLastUpdaterUserId(component.getLastUpdaterUserId());
90         }
91
92         private void buildCategories(List<CategoryDefinition> categories) {
93                 if (categories != null) {
94                         setCategories(categories);
95                         CategoryDefinition categoryDefinition = categories.get(0);
96
97                         if (categoryDefinition != null) {
98                                 setCategoryNormalizedName(categoryDefinition.getName());
99                                 List<SubCategoryDefinition> subcategories = categoryDefinition.getSubcategories();
100                                 if (null != subcategories) {
101                                         SubCategoryDefinition subCategoryDefinition = subcategories.get(0);
102
103                                         if (subCategoryDefinition != null) {
104                                                 setSubCategoryNormalizedName(subCategoryDefinition.getName());
105                                         }
106                                 }
107                         }
108                 }
109         }
110
111         @Override
112         public ChangeTypeEnum getChangeType() {
113                 return changeTypeEnum;
114         }
115
116         @Override
117         public CatalogUpdateTimestamp getCatalogUpdateTimestamp() {
118                 return catalogUpdateTimestamp;
119         }
120
121         @Override
122         public String toString() {
123                 return "ComponentMessage [ getChangeType()=" + getChangeType() + ", getCatalogUpdateTimestamp()="
124                                 + getCatalogUpdateTimestamp() + ", getIsArchived()=" + getIsArchived() + ", getUuid()=" + getUuid()
125                                 + ", getInvariantUUID()=" + getInvariantUUID() + ", getSystemName()=" + getSystemName()
126                                 + ", getDescription()=" + getDescription() + ", getIsHighestVersion()=" + getIsHighestVersion()
127                                 + ", getCategoryNormalizedName()=" + getCategoryNormalizedName() + ", getSubCategoryNormalizedName()="
128                                 + getSubCategoryNormalizedName() + ", getResourceType()=" + getResourceType() + ", getName()="
129                                 + getName() + ", getLastUpdateDate()=" + getLastUpdateDate() + ", getVersion()=" + getVersion()
130                                 + ", getComponentType()=" + getComponentType() + ", getIcon()=" + getIcon() + ", getUniqueId()="
131                                 + getUniqueId() + ", getLifecycleState()=" + getLifecycleState() + ", getDistributionStatus()="
132                                 + getDistributionStatus() + ", getTags()=" + getTags() + ", getCategories()=" + getCategories()
133                                 + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString()
134                                 + "]";
135         }
136
137         public Boolean getIsArchived() {
138                 return isArchived;
139         }
140
141         public void setIsArchived(Boolean isArchived) {
142                 this.isArchived = isArchived;
143         }
144
145
146     @Override
147     public String getMessageType() {
148         return getClass().getSimpleName();
149     }
150
151 }