/*- * ============LICENSE_START======================================================= * SDC * ================================================================================ * Copyright (C) 2017 AT&T 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.datamodel.utils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.components.ServiceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer; import org.openecomp.sdc.be.ui.model.UiComponentMetadata; import org.openecomp.sdc.be.ui.model.UiResourceDataTransfer; import org.openecomp.sdc.be.ui.model.UiResourceMetadata; import org.openecomp.sdc.be.ui.model.UiServiceDataTransfer; import org.openecomp.sdc.be.ui.model.UiServiceMetadata; public class UiComponentDataConverter { private static void setUiTranferDataByFieldName(UiComponentDataTransfer dataTransfer, Component component, String fieldName) { switch (ComponentFieldsEnum.findByValue(fieldName)) { case INPUTS: if(component.getInputs() == null){ dataTransfer.setInputs(new ArrayList<>()); } else { dataTransfer.setInputs(component.getInputs()); } break; case COMPONENT_INSTANCE_RELATION: if(component.getComponentInstancesRelations() == null){ dataTransfer.setComponentInstancesRelations(new ArrayList<>()); } else { dataTransfer.setComponentInstancesRelations(component.getComponentInstancesRelations()); } break; case GROUPS: if(component.getGroups() == null){ dataTransfer.setGroups(new ArrayList<>()); } else { dataTransfer.setGroups(component.getGroups()); } break; case COMPONENT_INSTANCES: if(component.getComponentInstances() == null) { dataTransfer.setComponentInstances(new ArrayList<>()); } else { dataTransfer.setComponentInstances(component.getComponentInstances()); } break; case COMPONENT_INSTANCES_PROPERTIES: if(component.getComponentInstancesProperties() == null) { dataTransfer.setComponentInstancesProperties(new HashMap<>()); } else { dataTransfer.setComponentInstancesProperties(component.getComponentInstancesProperties()); } break; case CAPABILITIES: if(component.getCapabilities() == null) { dataTransfer.setCapabilities(new HashMap<>()); } else { dataTransfer.setCapabilities(component.getCapabilities()); } break; case POLICIES: dataTransfer.setPolicies(component.resolvePoliciesList()); break; case REQUIREMENTS: if(component.getRequirements() == null) { dataTransfer.setRequirements(new HashMap<>()); } else { dataTransfer.setRequirements(component.getRequirements()); } break; case DEPLOYMENT_ARTIFACTS: if(component.getDeploymentArtifacts() == null) { dataTransfer.setDeploymentArtifacts(new HashMap<>()); } else { dataTransfer.setDeploymentArtifacts(component.getDeploymentArtifacts()); } break; case TOSCA_ARTIFACTS: if(component.getToscaArtifacts() == null) { dataTransfer.setToscaArtifacts(new HashMap<>()); } else { dataTransfer.setToscaArtifacts(component.getToscaArtifacts()); } break; case ARTIFACTS: if(component.getArtifacts() == null) { dataTransfer.setArtifacts(new HashMap<>()); } else { dataTransfer.setArtifacts(component.getArtifacts()); } break; case COMPONENT_INSTANCES_ATTRIBUTES: if(component.getComponentInstancesAttributes() == null) { dataTransfer.setComponentInstancesAttributes(new HashMap<>()); } else { dataTransfer.setComponentInstancesAttributes(component.getComponentInstancesAttributes()); } break; case COMPONENT_INSTANCE_INPUTS: if(component.getComponentInstancesInputs() == null) { dataTransfer.setComponentInstancesInputs(new HashMap<>()); } else { dataTransfer.setComponentInstancesInputs(component.getComponentInstancesInputs()); } break; default: break; } } public static UiComponentDataTransfer getUiDataTransferFromResourceByParams(Resource resource, List paramsToReturn) { UiResourceDataTransfer dataTransfer = new UiResourceDataTransfer(); for(String fieldName: paramsToReturn){ switch (ComponentFieldsEnum.findByValue(fieldName)) { case PROPERTIES: if(resource.getProperties() == null) { dataTransfer.setProperties(new ArrayList<>()); } else { dataTransfer.setProperties(resource.getProperties()); } break; case INTERFACES: if(resource.getInterfaces() == null) { dataTransfer.setInterfaces(new HashMap<>()); } else { dataTransfer.setInterfaces(resource.getInterfaces()); } break; case DERIVED_FROM: if(resource.getDerivedFrom() == null) { dataTransfer.setDerivedFrom(new ArrayList<>()); } else { dataTransfer.setDerivedFrom(resource.getDerivedFrom()); } break; case ATTRIBUTES: if(resource.getAttributes() == null) { dataTransfer.setAttributes(new ArrayList<>()); } else { dataTransfer.setAttributes(resource.getAttributes()); } break; case ADDITIONAL_INFORMATION: if(resource.getAdditionalInformation() == null) { dataTransfer.setAdditionalInformation(new ArrayList<>()); } else { dataTransfer.setAdditionalInformation(resource.getAdditionalInformation()); } break; case METADATA: UiResourceMetadata metadata = new UiResourceMetadata(resource.getCategories(), resource.getDerivedFrom(), (ResourceMetadataDataDefinition) resource.getComponentMetadataDefinition().getMetadataDataDefinition()); dataTransfer.setMetadata(metadata); break; default: setUiTranferDataByFieldName(dataTransfer, resource, fieldName); } } return dataTransfer; } public static UiComponentDataTransfer getUiDataTransferFromServiceByParams(Service service, List paramsToReturn) { UiServiceDataTransfer dataTransfer = new UiServiceDataTransfer(); for(String fieldName: paramsToReturn){ switch (ComponentFieldsEnum.findByValue(fieldName)) { case SERVICE_API_ARTIFACTS: if(service.getServiceApiArtifacts() == null) { dataTransfer.setServiceApiArtifacts(new org.openecomp.sdc.be.ui.model.SerializedHashMap<>()); } else { dataTransfer.setServiceApiArtifacts(service.getServiceApiArtifacts()); } break; case FORWARDING_PATHS: if(service.getForwardingPaths() == null) { dataTransfer.setForwardingPaths(new org.openecomp.sdc.be.ui.model.SerializedHashMap<>()); } else { dataTransfer.setForwardingPaths(service.getForwardingPaths()); } break; case METADATA: UiServiceMetadata metadata = new UiServiceMetadata(service.getCategories(), (ServiceMetadataDataDefinition) service.getComponentMetadataDefinition().getMetadataDataDefinition()); dataTransfer.setMetadata(metadata); break; default: setUiTranferDataByFieldName(dataTransfer, service, fieldName); } } return dataTransfer; } public static UiComponentMetadata convertToUiComponentMetadata(Component component) { UiComponentMetadata uiComponentMetadata = null; switch (component.getComponentType()) { case RESOURCE: Resource resource = (Resource)component; uiComponentMetadata = new UiResourceMetadata(component.getCategories(), resource.getDerivedFrom(), (ResourceMetadataDataDefinition) resource.getComponentMetadataDefinition().getMetadataDataDefinition()); break; case SERVICE: uiComponentMetadata = new UiServiceMetadata(component.getCategories(), (ServiceMetadataDataDefinition) component.getComponentMetadataDefinition().getMetadataDataDefinition()); break; default: break; } return uiComponentMetadata; } }