diff options
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel')
4 files changed, 593 insertions, 0 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/NodeType.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/NodeType.java new file mode 100644 index 0000000000..7c6c207f74 --- /dev/null +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/NodeType.java @@ -0,0 +1,88 @@ +package org.openecomp.sdc.be.model.jsontitan.datamodel; + +import java.util.List; +import java.util.Map; + +import org.openecomp.sdc.be.datatypes.elements.AttributeDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.InterfaceDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition; + +public class NodeType extends ToscaElement{ + + public NodeType() { + super(ToscaElementTypeEnum.NodeType); + } + + private List<String> derivedFrom; + private List<String> derivedList; + + private Map<String, AttributeDataDefinition> attributes; + private Map<String, ListCapabilityDataDefinition> capabilties; + private Map<String, MapPropertiesDataDefinition> capabiltiesProperties; + private Map<String, ListRequirementDataDefinition> requirements; + private Map<String, InterfaceDataDefinition> interfaceArtifacts; + + + // will be used in future + // private Map<String, Map<String, Object>> other; + + + public List<String> getDerivedList() { + return derivedList; + } + + public void setDerivedList(List<String> derivedList) { + this.derivedList = derivedList; + } + + public List<String> getDerivedFrom() { + return derivedFrom; + } + + public void setDerivedFrom(List<String> derivedFrom) { + this.derivedFrom = derivedFrom; + } + + public Map<String, AttributeDataDefinition> getAttributes() { + return attributes; + } + + public void setAttributes(Map<String, AttributeDataDefinition> attributes) { + this.attributes = attributes; + } + + public Map<String, ListCapabilityDataDefinition> getCapabilties() { + return capabilties; + } + + public void setCapabilties(Map<String, ListCapabilityDataDefinition> capabilties) { + this.capabilties = capabilties; + } + + public Map<String, ListRequirementDataDefinition> getRequirements() { + return requirements; + } + + public void setRequirements(Map<String, ListRequirementDataDefinition> requirements) { + this.requirements = requirements; + } + + public Map<String, MapPropertiesDataDefinition> getCapabiltiesProperties() { + return capabiltiesProperties; + } + + public void setCapabiltiesProperties(Map<String, MapPropertiesDataDefinition> capabiltiesProperties) { + this.capabiltiesProperties = capabiltiesProperties; + } + + public Map<String, InterfaceDataDefinition> getInterfaceArtifacts() { + return interfaceArtifacts; + } + + public void setInterfaceArtifacts(Map<String, InterfaceDataDefinition> interfaceArtifacts) { + this.interfaceArtifacts = interfaceArtifacts; + } + +} diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/TopologyTemplate.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/TopologyTemplate.java new file mode 100644 index 0000000000..74c4c30aa5 --- /dev/null +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/TopologyTemplate.java @@ -0,0 +1,199 @@ +package org.openecomp.sdc.be.model.jsontitan.datamodel; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.collections.MapUtils; +import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapArtifactDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapAttributesDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapCapabiltyProperty; +import org.openecomp.sdc.be.datatypes.elements.MapGroupsDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapListCapabiltyDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapListRequirementDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.RelationshipInstDataDefinition; +import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; +import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum; + +public class TopologyTemplate extends ToscaElement{ + + public TopologyTemplate() { + super(ToscaElementTypeEnum.TopologyTemplate); + } + private Map<String, PropertyDataDefinition> inputs; + private Map<String, MapPropertiesDataDefinition> instInputs; + private Map<String, ? extends ToscaDataDefinition> heatParameters; + private Map<String, MapAttributesDataDefinition> instAttributes; + private Map<String, MapPropertiesDataDefinition> instProperties; + private Map<String, GroupDataDefinition> groups; + private Map<String, MapGroupsDataDefinition> instGroups; + private Map<String, ArtifactDataDefinition> serviceApiArtifacts; + private Map<String, CompositionDataDefinition> compositions; + + private Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities; + private Map<String, MapListRequirementDataDefinition> calculatedRequirements; + private Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities; + private Map<String, MapListRequirementDataDefinition> fullfilledRequirements; + + private Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties; + + private Map<String, MapArtifactDataDefinition> instDeploymentArtifacts; + private Map<String, MapArtifactDataDefinition> instanceArtifacts; + + + public Map<String, PropertyDataDefinition> getInputs() { + return inputs; + } + public void setInputs(Map<String, PropertyDataDefinition> inputs) { + this.inputs = inputs; + } + public Map<String, MapPropertiesDataDefinition> getInstInputs() { + return instInputs; + } + public void setInstInputs(Map<String, MapPropertiesDataDefinition> instInputs) { + this.instInputs = instInputs; + } + public Map<String, ? extends ToscaDataDefinition> getHeatParameters() { + return heatParameters; + } + public void setHeatParameters(Map<String, ? extends ToscaDataDefinition> heatParameters) { + this.heatParameters = heatParameters; + } + public Map<String, MapAttributesDataDefinition> getInstAttributes() { + return instAttributes; + } + public void setInstAttributes(Map<String, MapAttributesDataDefinition> instAttributes) { + this.instAttributes = instAttributes; + } + public Map<String, MapPropertiesDataDefinition> getInstProperties() { + return instProperties; + } + public void setInstProperties(Map<String, MapPropertiesDataDefinition> instProperties) { + this.instProperties = instProperties; + } + public Map<String, GroupDataDefinition> getGroups() { + return groups; + } + public void setGroups(Map<String, GroupDataDefinition> groups) { + this.groups = groups; + } + public Map<String, MapGroupsDataDefinition> getInstGroups() { + return instGroups; + } + public void setInstGroups(Map<String, MapGroupsDataDefinition> instGroups) { + this.instGroups = instGroups; + } + public Map<String, ArtifactDataDefinition> getServiceApiArtifacts() { + return serviceApiArtifacts; + } + public void setServiceApiArtifacts(Map<String, ArtifactDataDefinition> serviceApiArtifacts) { + this.serviceApiArtifacts = serviceApiArtifacts; + } + public Map<String, CompositionDataDefinition> getCompositions() { + return compositions; + } + public void setCompositions(Map<String, CompositionDataDefinition> compositions) { + this.compositions = compositions; + } + public Map<String, MapListCapabiltyDataDefinition> getCalculatedCapabilities() { + return calculatedCapabilities; + } + public void setCalculatedCapabilities(Map<String, MapListCapabiltyDataDefinition> calculatedCapabilities) { + this.calculatedCapabilities = calculatedCapabilities; + } + public Map<String, MapListRequirementDataDefinition> getCalculatedRequirements() { + return calculatedRequirements; + } + public void setCalculatedRequirements(Map<String, MapListRequirementDataDefinition> calculatedRequirements) { + this.calculatedRequirements = calculatedRequirements; + } + public Map<String, MapListCapabiltyDataDefinition> getFullfilledCapabilities() { + return fullfilledCapabilities; + } + public void setFullfilledCapabilities(Map<String, MapListCapabiltyDataDefinition> fullfilledCapabilities) { + this.fullfilledCapabilities = fullfilledCapabilities; + } + public Map<String, MapListRequirementDataDefinition> getFullfilledRequirements() { + return fullfilledRequirements; + } + public void setFullfilledRequirements(Map<String, MapListRequirementDataDefinition> fullfilledRequirements) { + this.fullfilledRequirements = fullfilledRequirements; + } + + public Map<String, MapArtifactDataDefinition> getInstDeploymentArtifacts() { + return instDeploymentArtifacts; + } + public void setInstDeploymentArtifacts(Map<String, MapArtifactDataDefinition> instDeploymentArtifacts) { + this.instDeploymentArtifacts = instDeploymentArtifacts; + } + + public Map<String, MapCapabiltyProperty> getCalculatedCapabilitiesProperties() { + return calculatedCapabilitiesProperties; + } + public void setCalculatedCapabilitiesProperties(Map<String, MapCapabiltyProperty> calculatedCapabilitiesProperties) { + this.calculatedCapabilitiesProperties = calculatedCapabilitiesProperties; + } + + public Map<String, MapArtifactDataDefinition> getInstanceArtifacts() { + return instanceArtifacts; + } + public void setInstanceArtifacts(Map<String, MapArtifactDataDefinition> instanceArtifacts) { + this.instanceArtifacts = instanceArtifacts; + } + /** + * Adds component instance to composition of topology template + * Note that component instance will be overrided in case if the topology template already contains a component instance with the same name + * @param componentInstance + */ + public void addComponentInstance(ComponentInstanceDataDefinition componentInstance){ + if(getCompositions() == null){ + compositions = new HashMap<>(); + } + if(MapUtils.isEmpty(getCompositions())){ + compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition()); + } + if(MapUtils.isEmpty(getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances())){ + getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(new HashMap<>()); + } + getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances().put(componentInstance.getUniqueId(), componentInstance); + } + /** + * Returns map of component inctances from composition + * @return + */ + public Map<String, ComponentInstanceDataDefinition> getComponentInstances() { + Map<String, ComponentInstanceDataDefinition> instances = null; + if(getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){ + instances = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getComponentInstances(); + } + return instances; + } + + + /** + * Sets map of component instances to composition of topology template + * Note that component instances will be overrided in case if the topology template already contains a component instances + * @param instances + */ + public void setComponentInstances(Map<String, ComponentInstanceDataDefinition> instances) { + if(getCompositions() == null){ + compositions = new HashMap<>(); + } + if(MapUtils.isEmpty(getCompositions())){ + compositions.put(JsonConstantKeysEnum.COMPOSITION.getValue(), new CompositionDataDefinition()); + } + getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).setComponentInstances(instances); + } + public Map<String, RelationshipInstDataDefinition> getRelations() { + Map<String, RelationshipInstDataDefinition> relations = null; + if( getCompositions() != null && getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()) != null ){ + relations = getCompositions().get(JsonConstantKeysEnum.COMPOSITION.getValue()).getRelations(); + } + return relations; + } +} diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/ToscaElement.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/ToscaElement.java new file mode 100644 index 0000000000..72cf89f13c --- /dev/null +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/ToscaElement.java @@ -0,0 +1,277 @@ +package org.openecomp.sdc.be.model.jsontitan.datamodel; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.model.LifecycleStateEnum; +import org.openecomp.sdc.be.model.category.CategoryDefinition; +import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation; +import org.slf4j.MDC; + +public abstract class ToscaElement { + + protected Map<String, Object> metadata; + protected List<CategoryDefinition> categories; + protected Map<String, ArtifactDataDefinition> toscaArtifacts; + private Map<String, ArtifactDataDefinition> artifacts; + private Map<String, ArtifactDataDefinition> deploymentArtifacts; + private Map<String, AdditionalInfoParameterDataDefinition> additionalInformation; + private Map<String, PropertyDataDefinition> properties; + + protected ToscaElementTypeEnum toscaType; + // User + private String creatorUserId; + private String creatorFullName; + private String lastUpdaterUserId; + private String lastUpdaterFullName; + + private Map<String, String> allVersions; + + public ToscaElement(ToscaElementTypeEnum toscaType){ + this.toscaType = toscaType; + } + + public Map<String, Object> getMetadata() { + return metadata; + } + + public void setMetadata(Map<String, Object> metadata) { + this.metadata = metadata; + } + + public List<CategoryDefinition> getCategories() { + return categories; + } + + public void setCategories(List<CategoryDefinition> categories) { + this.categories = categories; + } + public Map<String, ArtifactDataDefinition> getToscaArtifacts() { + return toscaArtifacts; + } + + public void setToscaArtifacts(Map<String, ArtifactDataDefinition> toscaArtifacts) { + this.toscaArtifacts = toscaArtifacts; + } + + public ToscaElementTypeEnum getToscaType() { + return toscaType; + } + + public void setToscaType(ToscaElementTypeEnum toscaType) { + this.toscaType = toscaType; + } + public Map<String, ArtifactDataDefinition> getArtifacts() { + return artifacts; + } + + public void setArtifacts(Map<String, ArtifactDataDefinition> artifacts) { + this.artifacts = artifacts; + } + + public Map<String, ArtifactDataDefinition> getDeploymentArtifacts() { + return deploymentArtifacts; + } + + public void setDeploymentArtifacts(Map<String, ArtifactDataDefinition> deploymentArtifacts) { + this.deploymentArtifacts = deploymentArtifacts; + } + public Map<String, AdditionalInfoParameterDataDefinition> getAdditionalInformation() { + return additionalInformation; + } + public void setAdditionalInformation(Map<String, AdditionalInfoParameterDataDefinition> additionalInformation) { + this.additionalInformation = additionalInformation; + } + public Map<String, PropertyDataDefinition> getProperties() { + return properties; + } + public void setProperties(Map<String, PropertyDataDefinition> properties) { + this.properties = properties; + } + + public Map<String, String> getAllVersions() { + return allVersions; + } + + public void setAllVersions(Map<String, String> allVersions) { + this.allVersions = allVersions; + } + + // metadata properties + // ---------------------------- + public Object getMetadataValue(JsonPresentationFields name) { + return getMetadataValueOrDefault(name, null); + } + + public Object getMetadataValueOrDefault(JsonPresentationFields name, Object defaultVal) { + if (metadata != null) { + return metadata.getOrDefault(name.getPresentation(), defaultVal); + } + return null; + } + + public void setMetadataValue(JsonPresentationFields name, Object value) { + if (metadata == null) { + metadata = new HashMap<String, Object>(); + } + metadata.put(name.getPresentation(), value); + + } + // -------------------- + public String getUUID() { + return (String) getMetadataValue(JsonPresentationFields.UUID); + } + + public void setUUID(String uuid) { + setMetadataValue(JsonPresentationFields.UUID, uuid); + } + + public String getVersion() { + return (String) getMetadataValue(JsonPresentationFields.VERSION); + } + + public String getNormalizedName() { + return (String) getMetadataValue(JsonPresentationFields.NORMALIZED_NAME); + } + + public void setNormalizedName(String normaliseComponentName) { + setMetadataValue(JsonPresentationFields.NORMALIZED_NAME, normaliseComponentName); + } + + public String getName() { + return (String) getMetadataValue(JsonPresentationFields.NAME); + } + + public String getSystemName() { + return (String) getMetadataValue(JsonPresentationFields.SYSTEM_NAME); + } + public void setSystemName(String systemName) { + setMetadataValue(JsonPresentationFields.SYSTEM_NAME, systemName); + } + + public void setLifecycleState(LifecycleStateEnum state) { + if(state != null) + setMetadataValue(JsonPresentationFields.LIFECYCLE_STATE, state.name()); + } + + public LifecycleStateEnum getLifecycleState() { + return LifecycleStateEnum.findState( (String) getMetadataValue(JsonPresentationFields.LIFECYCLE_STATE)); + } + + public Long getCreationDate() { + return (Long) getMetadataValue(JsonPresentationFields.CREATION_DATE); + } + + public void setCreationDate(Long currentDate) { + setMetadataValue(JsonPresentationFields.CREATION_DATE, currentDate); + } + + public void setLastUpdateDate(Long currentDate) { + setMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE, currentDate); + } + public Long getLastUpdateDate() { + return (Long) getMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE); + } + + public String getUniqueId() { + return (String) getMetadataValue(JsonPresentationFields.UNIQUE_ID); + } + public void setUniqueId(String uniqueId) { + setMetadataValue(JsonPresentationFields.UNIQUE_ID, uniqueId); + } + + public void setHighestVersion(Boolean isHighest) { + setMetadataValue(JsonPresentationFields.HIGHEST_VERSION, isHighest); + + } + public Boolean isHighestVersion() { + return (Boolean) getMetadataValue(JsonPresentationFields.HIGHEST_VERSION); + + } + public ResourceTypeEnum getResourceType() { + String resourceType = (String) getMetadataValue(JsonPresentationFields.RESOURCE_TYPE); + return resourceType != null ? ResourceTypeEnum.valueOf(resourceType) : null; + } + + public void setResourceType(ResourceTypeEnum resourceType) { + if(resourceType != null) + setMetadataValue(JsonPresentationFields.RESOURCE_TYPE, resourceType.name()); + } + + public ComponentTypeEnum getComponentType() { + return ComponentTypeEnum.valueOf((String) getMetadataValue(JsonPresentationFields.COMPONENT_TYPE)); + } + + public void setComponentType(ComponentTypeEnum componentType) { + if(componentType != null) + setMetadataValue(JsonPresentationFields.COMPONENT_TYPE, componentType.name()); + } + + public String getDerivedFromGenericType(){ + return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE); + } + + public void setDerivedFromGenericType(String derivedFromGenericType){ + setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE, derivedFromGenericType); + } + + public String getDerivedFromGenericVersion(){ + return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION); + } + + public void setDerivedFromGenericVersion(String derivedFromGenericVersion){ + setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION, derivedFromGenericVersion); + } + + + public String getCreatorUserId() { + return creatorUserId; + } + + public void setCreatorUserId(String creatorUserId) { + this.creatorUserId = creatorUserId; + } + + public String getCreatorFullName() { + return creatorFullName; + } + + public void setCreatorFullName(String creatorFullName) { + this.creatorFullName = creatorFullName; + } + + public String getLastUpdaterUserId() { + return lastUpdaterUserId; + } + + public void setLastUpdaterUserId(String lastUpdaterUserId) { + this.lastUpdaterUserId = lastUpdaterUserId; + } + + public String getLastUpdaterFullName() { + return lastUpdaterFullName; + } + + public void setLastUpdaterFullName(String lastUpdaterFullName) { + this.lastUpdaterFullName = lastUpdaterFullName; + } + + public void generateUUID() { + String prevUUID = getUUID(); + String version = getVersion(); + if ((prevUUID == null && NodeTypeOperation.uuidNormativeNewVersion.matcher(version).matches()) || NodeTypeOperation.uuidNewVersion.matcher(version).matches()) { + UUID uuid = UUID.randomUUID(); + setUUID(uuid.toString()); + MDC.put("serviceInstanceID", uuid.toString()); + } + } + +} diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/ToscaElementTypeEnum.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/ToscaElementTypeEnum.java new file mode 100644 index 0000000000..7a8f76e511 --- /dev/null +++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/jsontitan/datamodel/ToscaElementTypeEnum.java @@ -0,0 +1,29 @@ +package org.openecomp.sdc.be.model.jsontitan.datamodel; + +import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; + +public enum ToscaElementTypeEnum { + NodeType("node_type"), + TopologyTemplate("topology_template"); + + String value; + private ToscaElementTypeEnum(String value){ + this.value = value; + } + + public static VertexTypeEnum getVertexTypeByToscaType(ToscaElementTypeEnum toscaType ){ + switch ( toscaType ){ + case NodeType : + return VertexTypeEnum.NODE_TYPE; + case TopologyTemplate : + return VertexTypeEnum.TOPOLOGY_TEMPLATE; + default : + return null; + } + } + + public String getValue() { + return value; + } + +} |