Support metadata in Inputs during Service Import 25/129625/2
authorvasraz <vasyl.razinkov@est.tech>
Wed, 15 Jun 2022 11:50:31 +0000 (12:50 +0100)
committerMichael Morris <michael.morris@est.tech>
Mon, 20 Jun 2022 21:32:44 +0000 (21:32 +0000)
Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech>
Change-Id: Ie010076082af7c8ed5fd5fcda874ade2a7e37389
Issue-ID: SDC-4052

catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java

index f537267..3a1c55a 100644 (file)
@@ -403,6 +403,7 @@ public final class ImportUtils {
         setField(inputValue, TypeUtils.ToscaTagNamesEnum.LABEL, inputDef::setLabel);
         setFieldBoolean(inputValue, TypeUtils.ToscaTagNamesEnum.HIDDEN, hidden -> inputDef.setHidden(Boolean.parseBoolean(hidden)));
         setFieldBoolean(inputValue, TypeUtils.ToscaTagNamesEnum.IMMUTABLE, immutable -> inputDef.setImmutable(Boolean.parseBoolean(immutable)));
+        setFieldMap(inputValue, ToscaTagNamesEnum.METADATA, inputDef::setMetadata);
         setSchema(inputValue, inputDef);
         setPropertyConstraints(inputValue, inputDef);
         return inputDef;
@@ -493,6 +494,14 @@ public final class ImportUtils {
         }
     }
 
+    private static void setFieldMap(final Map<String, Object> toscaJson, final ToscaTagNamesEnum tagName,
+                                    final Consumer<Map<String, String>> setter) {
+        final Either<Map<String, String>, ResultStatusEnum> toscaMapElement = findFirstToscaMapElement(toscaJson, tagName);
+        if (toscaMapElement.isLeft()) {
+            setter.accept(toscaMapElement.left().value());
+        }
+    }
+
     public static Either<Map<String, PropertyDefinition>, ResultStatusEnum> getProperties(Map<String, Object> toscaJson) {
         Function<String, PropertyDefinition> elementGenByName = ImportUtils::createProperties;
         Function<Map<String, Object>, PropertyDefinition> func = ImportUtils::createModuleProperty;