+ /**
+ * Creates or updates the Tosca Policy Model.
+ *
+ * @param policyModelType
+ * The policyModeltype in Tosca yaml
+ * @param policyModel
+ * The Policymodel object
+ * @return The Policy Model
+ */
+ public PolicyModel saveOrUpdateByPolicyModelType(String policyModelType,
+ String policyModelTosca) {
+ JsonObject jsonObject = toscaYamlToJsonConvertor.validateAndConvertToJson(policyModelTosca);
+
+ String policyModelTypeName = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
+ ToscaSchemaConstants.METADATA_POLICY_MODEL_TYPE);
+ String acronym = toscaYamlToJsonConvertor.getValueFromMetadata(jsonObject,
+ ToscaSchemaConstants.METADATA_ACRONYM);
+ PolicyModel model = getPolicyModelByType(
+ policyModelTypeName != null ? policyModelTypeName : policyModelType);
+
+ if (model == null) {
+ model = new PolicyModel(policyModelTypeName, policyModelTosca,
+ SemanticVersioning.incrementMajorVersion(null), acronym);
+ } else {
+ model.setVersion(SemanticVersioning
+ .incrementMajorVersion(model.getVersion() != null ? model.getVersion() : null));
+ model.setPolicyModelType(policyModelTypeName);
+ model.setPolicyAcronym(acronym);
+ }
+ return saveOrUpdatePolicyModel(model);
+ }
+