2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.be.model.operations.impl;
23 import java.util.HashMap;
25 import java.util.UUID;
27 import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum;
28 import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
29 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
30 import org.openecomp.sdc.be.resources.data.ResourceCategoryData;
31 import org.openecomp.sdc.be.resources.data.ServiceCategoryData;
32 import org.openecomp.sdc.be.resources.data.TagData;
33 import org.openecomp.sdc.be.resources.data.UserData;
34 import org.openecomp.sdc.common.api.Constants;
35 import org.openecomp.sdc.common.util.ValidationUtils;
37 public class UniqueIdBuilder {
39 private static String DOT = ".";
40 private static final String HEAT_PARAM_PREFIX = "heat_";
42 public static String buildPropertyUniqueId(String resourceId, String propertyName) {
43 return resourceId + DOT + propertyName;
46 public static String buildHeatParameterUniqueId(String resourceId, String propertyName) {
47 return resourceId + DOT + HEAT_PARAM_PREFIX + propertyName;
50 public static String buildHeatParameterValueUniqueId(String resourceId, String artifactLabel, String propertyName) {
51 return resourceId + DOT + artifactLabel + DOT + propertyName;
54 private static UserData userData = new UserData();
55 private static TagData tagData = new TagData();
56 private static ResourceCategoryData resCategoryData = new ResourceCategoryData();
57 private static ServiceCategoryData serCategoryData = new ServiceCategoryData();
59 private static Map<NodeTypeEnum, String> nodeTypeToUniqueKeyMapper = new HashMap<NodeTypeEnum, String>();
63 nodeTypeToUniqueKeyMapper.put(NodeTypeEnum.User, userData.getUniqueIdKey());
64 nodeTypeToUniqueKeyMapper.put(NodeTypeEnum.Tag, tagData.getUniqueIdKey());
65 nodeTypeToUniqueKeyMapper.put(NodeTypeEnum.ResourceCategory, resCategoryData.getUniqueIdKey());
66 nodeTypeToUniqueKeyMapper.put(NodeTypeEnum.ServiceCategory, serCategoryData.getUniqueIdKey());
70 * find the unique id key of a node on the graph
75 public static String getKeyByNodeType(NodeTypeEnum nodeTypeEnum) {
77 String key = nodeTypeToUniqueKeyMapper.get(nodeTypeEnum);
79 key = GraphPropertiesDictionary.UNIQUE_ID.getProperty();
85 public static String buildResourceUniqueId() {
86 return generateUUID();
89 public static String generateUUID() {
90 UUID uuid = UUID.randomUUID();
91 return uuid.toString();
94 public static String buildComponentUniqueId() {
95 return generateUUID();
98 public static String buildConstantProductId() {
99 return generateUUID();
102 public static String buildCapabilityTypeUid(String type) {
106 public static String buildAttributeUid(String resourceId, String attName) {
107 return NodeTypeEnum.Attribute.getName() + DOT + resourceId + DOT + attName;
109 public static String buildArtifactUid(String parentId, String label) {
110 return parentId + DOT + label;
112 public static String buildRequirementUid(String resourceId, String reqName) {
113 return resourceId + DOT + reqName;
116 public static String buildRequirementImplUid(String resourceId, String reqName) {
118 return NodeTypeEnum.RequirementImpl.getName() + DOT + resourceId + DOT + reqName;
122 public static String buildCapabilityUid(String resourceId, String capabilityName) {
123 return NodeTypeEnum.Capability.getName() + DOT + resourceId + DOT + capabilityName;
126 public static String buildCapabilityInstanceUid(String parentId, String capabilityName) {
127 return NodeTypeEnum.CapabilityInst.getName() + DOT + parentId + DOT + capabilityName;
130 public static String buildPropertyValueUniqueId(String parentId, String paramName) {
131 return NodeTypeEnum.PropertyValue.getName() + DOT + parentId + DOT + paramName;
134 public static String buildArtifactByInterfaceUniqueId(String resourceId, String interfaceName, String operation, String artifactLabel) {
136 return resourceId + DOT + interfaceName + DOT + operation + DOT + artifactLabel;
139 public static String buildInstanceArtifactUniqueId(String parentId, String instanceId, String artifactLabel) {
141 return parentId + DOT + instanceId + DOT + artifactLabel;
144 // public static String
145 // buildArtifactByInterfaceUniqueIdAndRsrcNameVersion(String
146 // resourceName,String resourceVersion,String interfaceName,String
147 // operation,String artifactLabel) {
148 // String resourceId = UniqueIdBuilder.buildResourceUniqueId(resourceName,
150 // return resourceId + DOT + interfaceName + DOT +operation + DOT +
153 public static String buildArtifactByInterfaceUniqueIdAndRsrcId(String resourceId, String interfaceName, String operation, String artifactLabel) {
154 return resourceId + DOT + interfaceName + DOT + operation + DOT + artifactLabel;
157 public static String buildOperationByInterfaceUniqueId(String resourceId, String interfaceName, String operation) {
159 return resourceId + DOT + interfaceName + DOT + operation;
162 public static String buildInterfaceUniqueId(String resourceId, String interfaceName) {
163 return resourceId + DOT + interfaceName;
166 public static String buildResourceInstanceUniuqeId(String serviceId, String resourceId, String logicalName) {
168 return serviceId + DOT + resourceId + DOT + logicalName;
171 public static String buildRelationsipInstInstanceUid(String resourceInstUid, String requirement) {
173 return generateUUID();
177 * TODO Pavel To be removed when new category logic comes in
179 public static String buildResourceCategoryUid(String categoryName, String subcategoryName, NodeTypeEnum type) {
180 return type.getName() + DOT + categoryName + DOT + subcategoryName;
184 * TODO Pavel To be removed when new category logic comes in
186 public static String buildServiceCategoryUid(String categoryName, NodeTypeEnum type) {
187 return type.getName() + DOT + categoryName;
191 public static String buildCategoryUid(String categoryName, NodeTypeEnum type) {
192 return type.getName() + DOT + categoryName;
194 public static String buildComponentCategoryUid(String categoryName, VertexTypeEnum type) {
195 return type.getName() + DOT + ValidationUtils.normalizeCategoryName4Uniqueness(categoryName);
198 public static String buildSubCategoryUid(String categoryUid, String subCategoryName) {
199 return categoryUid + DOT + subCategoryName;
202 public static String buildGroupingUid(String subCategoryUid, String groupingName) {
203 return subCategoryUid + DOT + groupingName;
206 public static String buildResourceInstancePropertyValueUid(String resourceInstanceUniqueId, Integer index) {
207 return resourceInstanceUniqueId + DOT + "property" + DOT + index;
210 public static String buildComponentPropertyUniqueId(String resourceId, String propertyName) {
211 return NodeTypeEnum.Property.getName() + DOT + resourceId + DOT + propertyName;
214 public static String buildResourceInstanceAttributeValueUid(String resourceInstanceUniqueId, Integer index) {
215 return resourceInstanceUniqueId + DOT + "attribute" + DOT + index;
218 public static String buildResourceInstanceInputValueUid(String resourceInstanceUniqueId, Integer index) {
219 return resourceInstanceUniqueId + DOT + "input" + DOT + index;
222 public static String buildAdditionalInformationUniqueId(String resourceUniqueId) {
223 return resourceUniqueId + DOT + "additionalinformation";
226 public static String buildHeatParamValueUid(String heatEnvArtifactId, String parameterName) {
227 return heatEnvArtifactId + DOT + parameterName;
230 public static String buildDataTypeUid(String name) {
231 return name + DOT + "datatype";
234 public static String buildInvariantUUID() {
235 return generateUUID();
238 public static String buildGroupTypeUid(String type, String version) {
239 return type + DOT + version + DOT + "grouptype";
242 public static String buildPolicyTypeUid(String type, String version) {
243 return type + DOT + version + DOT + "policytype";
246 public static String buildGroupUniqueId(String componentId, String name) {
247 return componentId + DOT + name + DOT + "group";
250 public static String buildPolicyUniqueId(String componentId, String name) {
251 return componentId + DOT + name + Constants.POLICY_UID_POSTFIX;
254 public static String buildGroupPropertyValueUid(String groupUniqueId, Integer index) {
255 return groupUniqueId + DOT + "property" + DOT + index;
259 public static String buildUserFunctionalMenuUid(String userId) {
260 return userId + DOT + "functionalmenu";