Onboard PNF software version
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / csar / PnfSoftwareInformation.java
1 /*
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation
4  *  ================================================================================
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *        http://www.apache.org/licenses/LICENSE-2.0
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  *
16  *  SPDX-License-Identifier: Apache-2.0
17  *  ============LICENSE_END=========================================================
18  */
19
20 package org.openecomp.sdc.be.components.csar;
21
22 import java.util.LinkedHashSet;
23 import java.util.Set;
24 import lombok.AccessLevel;
25 import lombok.AllArgsConstructor;
26 import lombok.Getter;
27 import lombok.Setter;
28
29 /**
30  * Represents the Pnf software information non-mano yaml
31  */
32 @Getter
33 @Setter
34 public class PnfSoftwareInformation {
35
36     private String description;
37     private String provider;
38     private String version;
39     @Setter(AccessLevel.NONE)
40     private Set<PnfSoftwareVersion> softwareVersionSet = new LinkedHashSet<>();
41
42     /**
43      * Adds a {@link PnfSoftwareVersion} instance to the software version set
44      * @param softwareVersion the pnf software version to add
45      */
46     public void addToSoftwareVersionSet(final PnfSoftwareVersion softwareVersion) {
47         softwareVersionSet.add(softwareVersion);
48     }
49
50     public Set<PnfSoftwareVersion> getSoftwareVersionSet() {
51         return new LinkedHashSet<>(softwareVersionSet);
52     }
53
54     /**
55      * Stores the software information yaml field names.
56      */
57     @AllArgsConstructor
58     @Getter
59     public enum PnfSoftwareInformationField {
60         DESCRIPTION("description"),
61         PROVIDER("provider"),
62         VERSION("version"),
63         PNF_SOFTWARE_INFORMATION("pnf_software_information");
64
65         private final String fieldName;
66
67     }
68 }