Add hasWidgetType() helper method
[aai/babel.git] / src / main / java / org / onap / aai / babel / parser / ArtifactGeneratorToscaParser.java
index ce1c352..684324a 100644 (file)
@@ -2,8 +2,8 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright © 2017-2019 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2019 European Software Marketing Ltd.
+ * Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (c) 2017-2019 European Software Marketing Ltd.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -43,7 +43,8 @@ import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil;
 import org.onap.aai.babel.xml.generator.model.Model;
 import org.onap.aai.babel.xml.generator.model.Resource;
 import org.onap.aai.babel.xml.generator.model.Widget;
-import org.onap.aai.babel.xml.generator.model.Widget.Type;
+import org.onap.aai.babel.xml.generator.model.WidgetType;
+import org.onap.aai.babel.xml.generator.types.ModelType;
 import org.onap.aai.cl.api.Logger;
 import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
 import org.onap.sdc.toscaparser.api.Group;
@@ -92,27 +93,9 @@ public class ArtifactGeneratorToscaParser {
         this.csarHelper = csarHelper;
     }
 
-    /**
-     * Get or create the artifact description.
-     *
-     * @param model
-     *            the artifact model
-     * @return the artifact model's description
-     */
-    public static String getArtifactDescription(Model model) {
-        switch (model.getModelType()) {
-            case SERVICE:
-                return "AAI Service Model";
-            case RESOURCE:
-                return "AAI Resource Model";
-            default:
-                return model.getModelDescription();
-        }
-    }
-
     /**
      * Initializes the Widget to UUID mapping configuration.
-     * 
+     *
      * @throws IOException
      *             if an error occurs reading the configuration properties
      */
@@ -136,7 +119,7 @@ public class ArtifactGeneratorToscaParser {
 
     /**
      * Initializes the group filtering and TOSCA to Widget mapping configuration.
-     * 
+     *
      * @param configLocation
      *            the pathname to the JSON mappings file
      * @throws IOException
@@ -208,14 +191,14 @@ public class ArtifactGeneratorToscaParser {
     }
 
     public Resource createInstanceGroupModel(Map<String, String> properties) {
-        Resource groupModel = new Resource(Type.INSTANCE_GROUP, true);
+        Resource groupModel = new Resource(WidgetType.valueOf("INSTANCE_GROUP"), true);
         groupModel.populateModelIdentificationInformation(properties);
         return groupModel;
     }
 
     /**
      * Add the resource/widget to the specified model.
-     * 
+     *
      * @param model
      * @param relation
      *            resource or widget model to add
@@ -223,7 +206,7 @@ public class ArtifactGeneratorToscaParser {
      *             if the relation is a widget and there is no configuration defined for the relation's widget type
      */
     public void addRelatedModel(final Model model, final Resource relation) throws XmlArtifactGenerationException {
-        if (relation.isResource()) {
+        if (relation.getModelType() == ModelType.RESOURCE) {
             model.addResource(relation);
         } else {
             model.addWidget(Widget.getWidget(relation.getWidgetType()));
@@ -255,7 +238,7 @@ public class ArtifactGeneratorToscaParser {
         // Process each VF Group
         for (Group serviceGroup : serviceGroups) {
             Model groupModel = Model.getModelFor(serviceGroup.getType());
-            if (groupModel.getWidgetType() == Type.VFMODULE) {
+            if (groupModel.hasWidgetType("VFMODULE")) {
                 processVfModule(resources, resourceModel, serviceGroup, serviceNode, (Resource) groupModel);
             }
         }
@@ -275,8 +258,8 @@ public class ArtifactGeneratorToscaParser {
             Resource model = Model.getModelFor(nodeTypeName, metaDataType);
 
             if (metadata != null && hasAllottedResource(metadata.getAllProperties())
-                    && model.getWidgetType() == Type.VSERVER) {
-                model = new Resource(Type.ALLOTTED_RESOURCE, false);
+                    && model.hasWidgetType("VSERVER")) {
+                model = new Resource(WidgetType.valueOf("ALLOTTED_RESOURCE"), false);
                 Map<String, Object> props = new HashMap<>();
                 props.put("providingService", true);
                 model.setProperties(props);
@@ -285,7 +268,7 @@ public class ArtifactGeneratorToscaParser {
             foundProvidingService |= processModel(resourceModel, metadata, model, resourceNodeTemplate.getProperties());
         }
 
-        if (resourceModel.getWidgetType() == Type.ALLOTTED_RESOURCE && !foundProvidingService) {
+        if (resourceModel.hasWidgetType("ALLOTTED_RESOURCE") && !foundProvidingService) {
             final String modelInvariantId = resourceModel.getModelId();
             throw new IllegalArgumentException(String.format(GENERATOR_AAI_PROVIDING_SERVICE_MISSING,
                     modelInvariantId == null ? "<null ID>" : modelInvariantId));
@@ -350,7 +333,7 @@ public class ArtifactGeneratorToscaParser {
                         memberModel.getClass().getSuperclass().getSimpleName(), memberModel.getClass(), nodeTypeName));
 
                 addRelatedModel(groupModel, memberModel);
-                if (memberModel.isResource()) {
+                if (memberModel.getModelType() == ModelType.RESOURCE) {
                     resources.add(memberModel);
                 }
             }
@@ -386,7 +369,7 @@ public class ArtifactGeneratorToscaParser {
 
     /**
      * Process the Widget members of a VF Module Group
-     * 
+     *
      * @param group
      * @param member
      * @throws XmlArtifactGenerationException
@@ -396,12 +379,12 @@ public class ArtifactGeneratorToscaParser {
 
         log.debug(member.getType() + " mapped to " + resource);
 
-        if (resource.getWidgetType() == Type.L3_NET) {
+        if (resource.hasWidgetType("L3_NET")) {
             // An l3-network inside a vf-module is treated as a Widget
-            resource.setIsResource(false);
+            resource.setModelType(ModelType.WIDGET);
         }
 
-        if (!resource.isResource()) {
+        if (resource.getModelType() == ModelType.WIDGET) {
             Widget widget = Widget.getWidget(resource.getWidgetType());
             widget.addKey(member.getName());
             // Add the widget element encountered to the Group model
@@ -442,12 +425,12 @@ public class ArtifactGeneratorToscaParser {
 
         if (foundProvidingService) {
             processProvidingService(resourceModel, resourceNode, nodeProperties);
-        } else if (resourceNode != null && resourceNode.isResource()
-                && resourceNode.getWidgetType() != Widget.Type.L3_NET) {
+        } else if (resourceNode != null && resourceNode.getModelType() == ModelType.RESOURCE
+                && !resourceNode.hasWidgetType("L3_NET")) {
             if (metaData != null) {
                 resourceNode.populateModelIdentificationInformation(metaData.getAllProperties());
             }
-            resourceModel.addResource((Resource) resourceNode);
+            resourceModel.addResource(resourceNode);
         }
         return foundProvidingService;
     }