- private void processResourceModels(Map<String, String> idTypeStore, Model resourceModel,
- List<NodeTemplate> resourceNodes) {
- boolean foundProvidingService = false;
-
- for (NodeTemplate resourceNodeTemplate : resourceNodes) {
- String nodeTypeName = normaliseNodeTypeName(resourceNodeTemplate);
- Metadata metaData = resourceNodeTemplate.getMetaData();
- String metaDataType = Optional.ofNullable(metaData).map(m -> m.getValue("type")).orElse(nodeTypeName);
- Model resourceNode = Model.getModelFor(nodeTypeName, metaDataType);
- foundProvidingService |= processModel(idTypeStore, resourceModel, resourceNodeTemplate, nodeTypeName,
- metaData, resourceNode);
- }
-
- if (resourceModel instanceof AllotedResource && !foundProvidingService) {
- throw new IllegalArgumentException(
- String.format(GENERATOR_AAI_PROVIDING_SERVICE_MISSING, resourceModel.getModelId()));
- }
- }
-
- private boolean processModel(Map<String, String> idTypeStore, Model resourceModel,
- NodeTemplate resourceNodeTemplate, String nodeTypeName, Metadata metaData, Model resourceNode) {
- boolean foundProvidingService = false;
- if (resourceNode instanceof ProvidingService) {
- foundProvidingService = true;
- processProvidingService(resourceModel, resourceNodeTemplate, resourceNode);
- } else if (resourceNode instanceof Resource && !(resourceNode.getWidgetType().equals(Widget.Type.L3_NET))) {
+ /**
+ * If the specified resourceNode is a type of Resource, add it to the specified resourceModel. If the Resource type
+ * is ProvidingService then return true, otherwise return false.
+ *
+ * @param resourceModel
+ * parent Resource
+ * @param metaData
+ * for populating the Resource IDs
+ * @param resourceNode
+ * any Model (will be ignored if not a Resource)
+ * @param nodeProperties
+ * the node properties
+ * @return whether or not a ProvidingService was processed
+ */
+ private boolean processModel(Model resourceModel, Metadata metaData, Resource resourceNode,
+ Map<String, Property> nodeProperties) {
+ boolean foundProvidingService = resourceNode != null
+ && (boolean) Optional.ofNullable(resourceNode.getProperties().get("providingService")).orElse(false);
+
+ if (foundProvidingService) {
+ processProvidingService(resourceModel, resourceNode, nodeProperties);
+ } else if (resourceNode != null && resourceNode.getModelType() == ModelType.RESOURCE
+ && resourceNode.getWidgetType() != Widget.Type.L3_NET) {