Fix for ETSI_CATALOG onboarding NS package
[integration/csit.git] / plans / so / integration-etsi-testing / so-simulators / sdc-simulator / src / main / java / org / onap / so / sdcsimulator / models / AssetType.java
index 749a714..a86e063 100644 (file)
  */
 package org.onap.so.sdcsimulator.models;
 
- /**
+import static org.onap.so.sdcsimulator.utils.Constants.CATALOG_URL;
+import static org.onap.so.sdcsimulator.utils.Constants.FORWARD_SLASH;
+import java.io.File;
+import java.io.IOException;
+import org.springframework.core.io.Resource;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
  *
  * @author Waqas Ikram (waqas.ikram@est.tech)
  *
  */
 public enum AssetType {
 
-    RESOURCES, SERVICES;
+    RESOURCES {
+        @Override
+        public AssetInfo getAssetInfo(final Resource resource) throws IOException {
+            return OBJ_MAPPER.readValue(resource.getInputStream(), ResourceAssetInfo.class);
+        }
+
+        @Override
+        public AssetInfo getAssetInfo(final File file) throws IOException {
+            return OBJ_MAPPER.readValue(file, ResourceAssetInfo.class);
+        }
+
+        @Override
+        public Metadata getMetadata(final Resource resource) throws IOException {
+            return OBJ_MAPPER.readValue(resource.getInputStream(), ResourceMetadata.class);
+        }
+
+        @Override
+        public Metadata getMetadata(final File file) throws IOException {
+            return OBJ_MAPPER.readValue(file, ResourceMetadata.class);
+        }
+
+    },
+    SERVICES {
+        @Override
+        public AssetInfo getAssetInfo(final Resource resource) throws IOException {
+            return OBJ_MAPPER.readValue(resource.getInputStream(), ServiceAssetInfo.class);
+        }
+
+        @Override
+        public AssetInfo getAssetInfo(final File file) throws IOException {
+            return OBJ_MAPPER.readValue(file, ServiceAssetInfo.class);
+        }
+
+        @Override
+        public Metadata getMetadata(final Resource resource) throws IOException {
+            return OBJ_MAPPER.readValue(resource.getInputStream(), ServiceMetadata.class);
+        }
+
+        @Override
+        public Metadata getMetadata(final File file) throws IOException {
+            return OBJ_MAPPER.readValue(file, ServiceMetadata.class);
+        }
+
+    };
+
+    private static final ObjectMapper OBJ_MAPPER =
+            new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+
+    public abstract AssetInfo getAssetInfo(final Resource resource) throws IOException;
+
+    public abstract AssetInfo getAssetInfo(final File file) throws IOException;
+
+    public abstract Metadata getMetadata(final Resource resource) throws IOException;
+
+    public abstract Metadata getMetadata(final File file) throws IOException;
+
+    public String getToscaModelUrl(final String filename) {
+        return CATALOG_URL + FORWARD_SLASH + this.toString().toLowerCase() + FORWARD_SLASH + filename + "/toscaModel";
+    }
+
+    public AssetInfo getDefaultAssetInfo(final String filename) {
+        AssetInfo defaultValue = null;
+
+        if (this.equals(RESOURCES)) {
+            defaultValue = new ResourceAssetInfo().subCategory("Network Service");
+        } else if (this.equals(SERVICES)) {
+            defaultValue = new ServiceAssetInfo().distributionStatus("DISTRIBUTED");
+        } else {
+            defaultValue = new AssetInfo();
+        }
+
+        return defaultValue.uuid(filename).invariantUuid(filename).name(filename).version("1.0")
+                .toscaModelUrl(getToscaModelUrl(filename)).category("Generic").lifecycleState("CERTIFIED")
+                .lastUpdaterUserId("SDC_SIMULATOR");
+    }
 
 }