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
 
   9  *      http://www.apache.org/licenses/LICENSE-2.0
 
  11  * Unless required by applicable law or agreed to in writing, software
 
  12  * distributed under the License is distributed on an "AS IS" BASIS,
 
  13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  14  * See the License for the specific language governing permissions and
 
  15  * limitations under the License.
 
  17  * SPDX-License-Identifier: Apache-2.0
 
  18  * ============LICENSE_END=========================================================
 
  21 package org.onap.so.adapters.vnfmadapter.converters;
 
  23 import org.onap.so.adapters.vnfmadapter.extclients.etsicatalog.model.*;
 
  24 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.packagemanagement.model.*;
 
  25 import org.slf4j.Logger;
 
  26 import org.slf4j.LoggerFactory;
 
  27 import org.springframework.core.convert.converter.Converter;
 
  28 import org.springframework.stereotype.Service;
 
  29 import java.util.ArrayList;
 
  30 import java.util.List;
 
  33  * Converter to convert from an Etsi Catalog Model {@link VnfPkgInfo} Object to a PackageManagement Model
 
  34  * {@link InlineResponse2001} Object
 
  36  * @author andrew.a.lamb@est.tech
 
  39 public class Sol003EtsiVnfPkgInfoToPkgmInlineResponse2001Converter
 
  40         implements Converter<VnfPkgInfo, InlineResponse2001> {
 
  41     private static final Logger logger =
 
  42             LoggerFactory.getLogger(Sol003EtsiVnfPkgInfoToPkgmInlineResponse2001Converter.class);
 
  45      * Convert a {@link VnfPkgInfo} Object to an {@link InlineResponse2001} Object
 
  47      * @param vnfPkgInfo The VnfPkgInfo Object to Convert
 
  48      * @return The Converted InlineResponse2001 Object
 
  51     public InlineResponse2001 convert(final VnfPkgInfo vnfPkgInfo) {
 
  52         if (vnfPkgInfo == null) {
 
  53             logger.info("No VnfPkgInfo Object Provided for Conversion. (Null object received, returning Null)");
 
  56         final InlineResponse2001 response = new InlineResponse2001();
 
  57         response.setId(vnfPkgInfo.getId());
 
  58         response.setVnfdId(vnfPkgInfo.getVnfdId());
 
  59         response.setVnfProvider(vnfPkgInfo.getVnfProvider());
 
  60         response.setVnfProductName(vnfPkgInfo.getVnfProductName());
 
  61         response.setVnfSoftwareVersion(vnfPkgInfo.getVnfSoftwareVersion());
 
  62         response.setVnfdVersion(vnfPkgInfo.getVnfdVersion());
 
  63         response.setChecksum(convertChecksumToVnfPackagesChecksum(vnfPkgInfo.getChecksum()));
 
  64         response.setSoftwareImages(
 
  65                 convertVnfPackageSoftwareImageInfoListToVnfPackagesSoftwareImagesList(vnfPkgInfo.getSoftwareImages()));
 
  66         response.setAdditionalArtifacts(convertVnfPackageArtifactInfoListToVnfPackagesAdditionalArtifactsList(
 
  67                 vnfPkgInfo.getAdditionalArtifacts()));
 
  69         if (vnfPkgInfo.getOnboardingState() != null) {
 
  70             response.setOnboardingState(
 
  71                     InlineResponse2001.OnboardingStateEnum.fromValue(vnfPkgInfo.getOnboardingState().getValue()));
 
  74         if (vnfPkgInfo.getOperationalState() != null) {
 
  75             response.setOperationalState(
 
  76                     InlineResponse2001.OperationalStateEnum.fromValue(vnfPkgInfo.getOperationalState().getValue()));
 
  79         response.setUserDefinedData((vnfPkgInfo.getUserDefinedData()));
 
  81         if (vnfPkgInfo.getLinks() != null) {
 
  82             response.setLinks(convertVNFPKGMLinkSerializerToVnfPackagesLinks(vnfPkgInfo.getLinks()));
 
  88     private VnfPackagesChecksum convertChecksumToVnfPackagesChecksum(final Checksum checksum) {
 
  89         final VnfPackagesChecksum vnfPackagesChecksum = new VnfPackagesChecksum();
 
  90         if (checksum != null) {
 
  91             vnfPackagesChecksum.setAlgorithm(checksum.getAlgorithm());
 
  92             vnfPackagesChecksum.setHash(checksum.getHash());
 
  94         return vnfPackagesChecksum;
 
  97     private List<VnfPackagesSoftwareImages> convertVnfPackageSoftwareImageInfoListToVnfPackagesSoftwareImagesList(
 
  98             final List<VnfPackageSoftwareImageInfo> vnfPackageSoftwareImageInfoList) {
 
  99         final List<VnfPackagesSoftwareImages> vnfPackagesSoftwareImages = new ArrayList<>();
 
 100         if (vnfPackageSoftwareImageInfoList != null) {
 
 101             for (final VnfPackageSoftwareImageInfo vnfPackageSoftwareImageInfo : vnfPackageSoftwareImageInfoList) {
 
 102                 final VnfPackagesSoftwareImages softwareImage =
 
 103                         convertVnfPackageSoftwareImageInfoToVnfPackagesSoftwareImages(vnfPackageSoftwareImageInfo);
 
 104                 vnfPackagesSoftwareImages.add(softwareImage);
 
 107         return vnfPackagesSoftwareImages;
 
 110     private VnfPackagesSoftwareImages convertVnfPackageSoftwareImageInfoToVnfPackagesSoftwareImages(
 
 111             final VnfPackageSoftwareImageInfo vnfPackageSoftwareImageInfo) {
 
 112         final VnfPackagesSoftwareImages vnfPackagesSoftwareImages = new VnfPackagesSoftwareImages();
 
 113         vnfPackagesSoftwareImages.setId(vnfPackageSoftwareImageInfo.getId());
 
 114         vnfPackagesSoftwareImages.setName(vnfPackageSoftwareImageInfo.getName());
 
 115         vnfPackagesSoftwareImages.setProvider(vnfPackageSoftwareImageInfo.getProvider());
 
 116         vnfPackagesSoftwareImages.setVersion(vnfPackageSoftwareImageInfo.getVersion());
 
 117         vnfPackagesSoftwareImages
 
 118                 .setChecksum(convertChecksumToVnfPackagesChecksum(vnfPackageSoftwareImageInfo.getChecksum()));
 
 119         if (vnfPackageSoftwareImageInfo.getContainerFormat() != null) {
 
 120             vnfPackagesSoftwareImages.setContainerFormat(VnfPackagesSoftwareImages.ContainerFormatEnum
 
 121                     .fromValue(vnfPackageSoftwareImageInfo.getContainerFormat().getValue()));
 
 124         if (vnfPackageSoftwareImageInfo.getDiskFormat() != null) {
 
 125             vnfPackagesSoftwareImages.setDiskFormat(VnfPackagesSoftwareImages.DiskFormatEnum
 
 126                     .fromValue(vnfPackageSoftwareImageInfo.getDiskFormat().getValue()));
 
 129         vnfPackagesSoftwareImages.setCreatedAt(vnfPackageSoftwareImageInfo.getCreatedAt());
 
 130         vnfPackagesSoftwareImages.setMinDisk(vnfPackageSoftwareImageInfo.getMinDisk());
 
 131         vnfPackagesSoftwareImages.setMinRam(vnfPackageSoftwareImageInfo.getMinRam());
 
 132         vnfPackagesSoftwareImages.setSize(vnfPackageSoftwareImageInfo.getSize());
 
 133         vnfPackagesSoftwareImages.setUserMetadata(vnfPackageSoftwareImageInfo.getUserMetadata());
 
 134         vnfPackagesSoftwareImages.setImagePath(vnfPackageSoftwareImageInfo.getImagePath());
 
 135         return vnfPackagesSoftwareImages;
 
 138     private List<VnfPackagesAdditionalArtifacts> convertVnfPackageArtifactInfoListToVnfPackagesAdditionalArtifactsList(
 
 139             final List<VnfPackageArtifactInfo> vnfPackageArtifactInfoList) {
 
 140         if (vnfPackageArtifactInfoList != null) {
 
 141             final List<VnfPackagesAdditionalArtifacts> additionalArtifacts = new ArrayList<>();
 
 142             for (final VnfPackageArtifactInfo artifactInfo : vnfPackageArtifactInfoList) {
 
 143                 final VnfPackagesAdditionalArtifacts artifact =
 
 144                         convertVnfPackageArtifactInfoToVnfPackagesAdditionalArtifacts(artifactInfo);
 
 145                 additionalArtifacts.add(artifact);
 
 147             return additionalArtifacts;
 
 152     private VnfPackagesAdditionalArtifacts convertVnfPackageArtifactInfoToVnfPackagesAdditionalArtifacts(
 
 153             final VnfPackageArtifactInfo vnfPackageArtifactInfo) {
 
 154         final VnfPackagesAdditionalArtifacts vnfPackagesAdditionalArtifacts = new VnfPackagesAdditionalArtifacts();
 
 155         vnfPackagesAdditionalArtifacts.setArtifactPath(vnfPackageArtifactInfo.getArtifactPath());
 
 156         vnfPackagesAdditionalArtifacts
 
 157                 .setChecksum(convertChecksumToVnfPackagesChecksum(vnfPackageArtifactInfo.getChecksum()));
 
 158         vnfPackagesAdditionalArtifacts.setMetadata(vnfPackageArtifactInfo.getMetadata());
 
 159         return vnfPackagesAdditionalArtifacts;
 
 162     private VnfPackagesLinks convertVNFPKGMLinkSerializerToVnfPackagesLinks(
 
 163             final VNFPKGMLinkSerializer vnfpkgmLinkSerializer) {
 
 164         final VnfPackagesLinks vnfPackagesLinks = new VnfPackagesLinks();
 
 165         vnfPackagesLinks.setSelf(convertUriLinkToVnfPackagesLinksSelf(vnfpkgmLinkSerializer.getSelf()));
 
 166         vnfPackagesLinks.setVnfd(convertUriLinkToVnfPackagesLinksSelf(vnfpkgmLinkSerializer.getVnfd()));
 
 168                 .setPackageContent(convertUriLinkToVnfPackagesLinksSelf(vnfpkgmLinkSerializer.getPackageContent()));
 
 169         return vnfPackagesLinks;
 
 172     private VnfPackagesLinksSelf convertUriLinkToVnfPackagesLinksSelf(final UriLink uriLink) {
 
 173         final VnfPackagesLinksSelf vnfPackagesLinksSelf = new VnfPackagesLinksSelf();
 
 174         if (uriLink != null) {
 
 175             vnfPackagesLinksSelf.setHref(uriLink.getHref());
 
 177         return vnfPackagesLinksSelf;