aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadServiceInfo.java
blob: 29d6fa40fd0958c86e76859c0e83248a9d734b82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/*-
 * ============LICENSE_START=======================================================
 * SDC
 * ================================================================================
 * Copyright (C) 2020 CMCC Intellectual Property. All rights reserved.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ============LICENSE_END=========================================================
 */

package org.openecomp.sdc.be.model;

import java.util.ArrayList;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
import org.openecomp.sdc.be.model.category.CategoryDefinition;
import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
import org.openecomp.sdc.common.api.UploadArtifactInfo;

@Getter
@Setter
public class UploadServiceInfo {

  private String payloadData;
  private String payloadName;
  private String description;
  private List<String> tags;
  private List<CategoryDefinition> categories;

  private String invariantUUID;
  private String UUID;
  private String type;
  private String category;
  private String subcategory;
  private String resourceVendor;
  private String resourceVendorRelease;
  private String serviceRole;
  private String serviceEcompNaming;
  private String ecompGeneratedNaming;
  private String namingPolicy;
  private String projectCode;


  private List<UploadArtifactInfo> artifactList;
  private String contactId, name, serviceIconPath, icon, vendorName, vendorRelease, serviceVendorModelNumber;

  private String serviceType = "";

  public UploadServiceInfo(String payloadData, String payloadName, String description,
      List<String> tags, String invariantUUID, String UUID, String type,
      String category, String subcategory, String resourceVendor,
      String resourceVendorRelease, String serviceRole, String serviceEcompNaming,
      String ecompGeneratedNaming, String namingPolicy,
      List<UploadArtifactInfo> artifactList, String contactId, String name,
      String resourceIconPath, String icon, String vendorName, String vendorRelease,
      String serviceVendorModelNumber, String serviceType, String projectCode) {
    this.payloadData = payloadData;
    this.payloadName = payloadName;
    this.description = description;
    this.tags = tags;
    this.invariantUUID = invariantUUID;
    this.UUID = UUID;
    this.type = type;
    this.category = category;
    this.subcategory = subcategory;
    this.resourceVendor = resourceVendor;
    this.resourceVendorRelease = resourceVendorRelease;
    this.serviceRole = serviceRole;
    this.serviceEcompNaming = serviceEcompNaming;
    this.ecompGeneratedNaming = ecompGeneratedNaming;
    this.namingPolicy = namingPolicy;
    this.artifactList = artifactList;
    this.contactId = contactId;
    this.name = name;
    this.serviceIconPath = serviceIconPath;
    this.icon = icon;
    this.vendorName = vendorName;
    this.vendorRelease = vendorRelease;
    this.serviceVendorModelNumber = serviceVendorModelNumber;
    this.serviceType = serviceType;
    this.projectCode = projectCode;

    if (category != null) {
      String[] arr = category.split("/");
      if (arr.length >= 2) {
        categories = new ArrayList<>();
        CategoryDefinition catDef = new CategoryDefinition();
        catDef.setName(arr[0]);
        SubCategoryDefinition subCat = new SubCategoryDefinition();
        subCat.setName(arr[1]);
        catDef.addSubCategory(subCat);
        categories.add(catDef);
      }
    }
  }

  public UploadServiceInfo() {
  }
  public void addSubCategory(String category, String subCategory) {
    if (category != null || subCategory != null) {
      if (categories == null) {
        categories = new ArrayList<>();
      }
      CategoryDefinition selectedCategory = null;
      for (CategoryDefinition categoryDef : categories) {
        if (categoryDef.getName().equals(category)) {
          selectedCategory = categoryDef;
        }
      }
      if (selectedCategory == null) {
        selectedCategory = new CategoryDefinition();
        selectedCategory.setName(category);
        categories.add(selectedCategory);
      }
      List<SubCategoryDefinition> subcategories = selectedCategory.getSubcategories();
      if (subcategories == null) {
        subcategories = new ArrayList<>();
        selectedCategory.setSubcategories(subcategories);
      }
      SubCategoryDefinition selectedSubcategory = null;
      for (SubCategoryDefinition subcategory : subcategories) {
        if (subcategory.getName().equals(subCategory)) {
          selectedSubcategory = subcategory;
        }
      }
      if (selectedSubcategory == null) {
        selectedSubcategory = new SubCategoryDefinition();
        selectedSubcategory.setName(subCategory);
        subcategories.add(selectedSubcategory);
      }
    }
  }
}