Re-implement model type value for Resource Mapping
[aai/babel.git] / src / main / java / org / onap / aai / babel / parser / ArtifactGeneratorToscaParser.java
index c79c2ef..6e37587 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.
@@ -44,6 +44,7 @@ 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.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,28 +93,11 @@ 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
      */
     public static void initWidgetConfiguration() throws IOException {
         log.debug("Getting Widget Configuration");
@@ -172,6 +156,7 @@ public class ArtifactGeneratorToscaParser {
      * @param serviceNodeTemplate
      * @return resources for which XML Models should be generated
      * @throws XmlArtifactGenerationException
+     *             if there is no configuration defined for a member Widget of an instance group
      */
     public List<Resource> processInstanceGroups(Model resourceModel, NodeTemplate serviceNodeTemplate)
             throws XmlArtifactGenerationException {
@@ -212,12 +197,16 @@ public class ArtifactGeneratorToscaParser {
     }
 
     /**
+     * Add the resource/widget to the specified model.
+     * 
      * @param model
      * @param relation
+     *            resource or widget model to add
      * @throws XmlArtifactGenerationException
+     *             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()));
@@ -299,6 +288,7 @@ public class ArtifactGeneratorToscaParser {
      *            the properties of the Group
      * @return the Instance Group and Member resource models
      * @throws XmlArtifactGenerationException
+     *             if there is no configuration defined for one of the member Widgets
      */
     private List<Resource> processInstanceGroup(Model resourceModel, ArrayList<NodeTemplate> memberNodes,
             Map<String, String> metaProperties, Map<String, Property> properties)
@@ -317,8 +307,10 @@ public class ArtifactGeneratorToscaParser {
     /**
      * @param memberNodes
      * @param groupModel
-     * @return
+     * @return a list of Resources
      * @throws XmlArtifactGenerationException
+     *             if a member node template is a widget and there is no configuration defined for that relation's
+     *             widget type
      */
     private List<Resource> generateResourcesAndWidgets(final ArrayList<NodeTemplate> memberNodes,
             final Resource groupModel) throws XmlArtifactGenerationException {
@@ -341,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);
                 }
             }
@@ -389,10 +381,10 @@ public class ArtifactGeneratorToscaParser {
 
         if (resource.getWidgetType() == Type.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
@@ -433,7 +425,7 @@ public class ArtifactGeneratorToscaParser {
 
         if (foundProvidingService) {
             processProvidingService(resourceModel, resourceNode, nodeProperties);
-        } else if (resourceNode != null && resourceNode.isResource()
+        } else if (resourceNode != null && resourceNode.getModelType() == ModelType.RESOURCE
                 && resourceNode.getWidgetType() != Widget.Type.L3_NET) {
             if (metaData != null) {
                 resourceNode.populateModelIdentificationInformation(metaData.getAllProperties());