diff options
author | liamfallon <liam.fallon@est.tech> | 2020-09-24 16:12:50 +0100 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2020-10-15 11:00:40 +0100 |
commit | 78a5a8cd584f5bcd8c68a93f10a57fbd726f644b (patch) | |
tree | 2c8279ea9ab6b2c4cbb3a0494c7f3b1b34f08ac8 /models-tosca/src/main/java/org | |
parent | c48e63f81e072c3cdf3f3fe84983285c0b8f1439 (diff) |
Default should be an object on TOSCA properties
Property default value is serialized to the database as Yaml and
deserialized back into an object on a DB read.
Issue-ID: POLICY-2844
Change-Id: I69f2843a93cd5f831359a0965223298b769498d9
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'models-tosca/src/main/java/org')
3 files changed, 26 insertions, 13 deletions
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntity.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntity.java index e588a59fe..b242bff65 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntity.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntity.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Model * ================================================================================ - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -88,7 +88,7 @@ public class ToscaEntity implements PfNameVersion { * * @param listOfMapsOfEntities the incoming list of maps of entities * @return The entities on a regular map - * @throws PfModelException on duplicate entity entries + * @throws PfModelRuntimeException on duplicate entity entries */ public static <T extends ToscaEntity> Map<ToscaEntityKey, T> getEntityListMapAsMap( List<Map<String, T>> listOfMapsOfEntities) { @@ -114,7 +114,7 @@ public class ToscaEntity implements PfNameVersion { * * @param mapOfEntities the incoming list of maps of entities * @return The entities on a regular map - * @throws PfModelException on duplicate entity entries + * @throws PfModelRuntimeException on duplicate entity entries */ public static <T extends ToscaEntity> Map<ToscaEntityKey, T> getEntityMapAsMap(Map<String, T> mapOfEntities) { // Declare the return map diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaProperty.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaProperty.java index fd8a86a0d..59fbc8b22 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaProperty.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaProperty.java @@ -3,7 +3,7 @@ * ONAP Policy Model * ================================================================================ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019-2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ public class ToscaProperty { @ApiModelProperty(name = "default") @SerializedName("default") - private String defaultValue; + private Object defaultValue; private boolean required = false; diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaProperty.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaProperty.java index 25d22661f..60e2fa05a 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaProperty.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaProperty.java @@ -35,14 +35,19 @@ import javax.persistence.Entity; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.Table; +import javax.ws.rs.core.Response; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; import org.apache.commons.lang3.ObjectUtils; +import org.onap.policy.common.utils.coder.CoderException; +import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.coder.YamlJsonTranslator; import org.onap.policy.models.base.PfAuthorative; import org.onap.policy.models.base.PfConcept; import org.onap.policy.models.base.PfConceptKey; import org.onap.policy.models.base.PfKey; +import org.onap.policy.models.base.PfModelRuntimeException; import org.onap.policy.models.base.PfReferenceKey; import org.onap.policy.models.base.PfUtils; import org.onap.policy.models.base.PfValidationMessage; @@ -112,7 +117,7 @@ public class JpaToscaProperty extends PfConcept implements PfAuthorative<ToscaPr /** * The Key Constructor creates a {@link JpaToscaProperty} object with the given concept key. * - * @param key the key + * @param key the key * @param type the key of the property type */ public JpaToscaProperty(@NonNull final PfReferenceKey key, @NonNull final PfConceptKey type) { @@ -159,9 +164,12 @@ public class JpaToscaProperty extends PfConcept implements PfAuthorative<ToscaPr toscaProperty.setDescription(description); toscaProperty.setRequired(required); - toscaProperty.setDefaultValue(defaultValue); toscaProperty.setStatus(status); + if (defaultValue != null) { + toscaProperty.setDefaultValue(new YamlJsonTranslator().fromYaml(defaultValue, Object.class)); + } + if (constraints != null) { List<ToscaConstraint> toscaConstraints = new ArrayList<>(); @@ -196,9 +204,14 @@ public class JpaToscaProperty extends PfConcept implements PfAuthorative<ToscaPr description = toscaProperty.getDescription(); required = toscaProperty.isRequired(); - defaultValue = toscaProperty.getDefaultValue(); status = toscaProperty.getStatus(); + if (toscaProperty.getDefaultValue() != null) { + defaultValue = new YamlJsonTranslator().toYaml(toscaProperty.getDefaultValue()).trim(); + } else { + defaultValue = null; + } + if (toscaProperty.getConstraints() != null) { constraints = new ArrayList<>(); @@ -262,14 +275,14 @@ public class JpaToscaProperty extends PfConcept implements PfAuthorative<ToscaPr if (key.isNullKey()) { result.addValidationMessage( - new PfValidationMessage(key, this.getClass(), ValidationResult.INVALID, "key is a null key")); + new PfValidationMessage(key, this.getClass(), ValidationResult.INVALID, "key is a null key")); } result = key.validate(result); if (type == null || type.isNullKey()) { result.addValidationMessage(new PfValidationMessage(key, this.getClass(), ValidationResult.INVALID, - "property type may not be null")); + "property type may not be null")); } return validateFields(result); @@ -286,19 +299,19 @@ public class JpaToscaProperty extends PfConcept implements PfAuthorative<ToscaPr if (description != null && description.trim().length() == 0) { result.addValidationMessage(new PfValidationMessage(key, this.getClass(), ValidationResult.INVALID, - "property description may not be blank")); + "property description may not be blank")); } if (defaultValue != null && defaultValue.trim().length() == 0) { result.addValidationMessage(new PfValidationMessage(key, this.getClass(), ValidationResult.INVALID, - "property default value may not be null")); + "property default value may not be null")); } if (constraints != null) { for (JpaToscaConstraint constraint : constraints) { if (constraint == null) { result.addValidationMessage(new PfValidationMessage(key, this.getClass(), ValidationResult.INVALID, - "property constraint may not be null ")); + "property constraint may not be null ")); } } } |