X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Fxml%2Fgenerator%2Fdata%2FWidgetConfigurationUtil.java;h=30b6c8ee3721c7dc4f8ea69b8cc35ec37200aec5;hb=7fcc74469c941c1834cd02b54ff5ca88a53bf83b;hp=d36982d507652ebf3dc466e9363851f313b9341d;hpb=1bde7e38ed218f9ba337ee5cd9acfe524206e996;p=aai%2Fbabel.git diff --git a/src/main/java/org/onap/aai/babel/xml/generator/data/WidgetConfigurationUtil.java b/src/main/java/org/onap/aai/babel/xml/generator/data/WidgetConfigurationUtil.java index d36982d..30b6c8e 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/data/WidgetConfigurationUtil.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/data/WidgetConfigurationUtil.java @@ -2,8 +2,8 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 European Software Marketing Ltd. + * Copyright © 2017-2019 AT&T Intellectual Property. All rights reserved. + * Copyright © 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. @@ -20,11 +20,19 @@ */ package org.onap.aai.babel.xml.generator.data; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.Properties; +import org.onap.aai.babel.xml.generator.model.Model; public class WidgetConfigurationUtil { private static Properties config; + private static List instanceGroups = Collections.emptyList(); + private static Map> typeToModel = new HashMap<>(); /* * Private constructor to prevent instantiation @@ -40,4 +48,39 @@ public class WidgetConfigurationUtil { public static void setConfig(Properties config) { WidgetConfigurationUtil.config = config; } + + public static void setSupportedInstanceGroups(List supportedInstanceGroups) { + instanceGroups = supportedInstanceGroups; + } + + public static boolean isSupportedInstanceGroup(String groupType) { + return instanceGroups.contains(groupType); + } + + /** + * Create the mappings from TOSCA type to Widget type. The Properties store a set of TOSCA type prefix Strings. + * These keys take a single class name (String), which is used to map to a Widget Class in the Model. + * + * @param map + * the key/value pairs of TOSCA type and Class name + */ + @SuppressWarnings("unchecked") + public static void setTypeMappings(Map map) { + for (Entry entry : map.entrySet()) { + final String toscaType = entry.getKey(); + final String javaBean = entry.getValue(); + final String modelClassName = Model.class.getPackage().getName() + "." + javaBean; + try { + typeToModel.put(toscaType, (Class) Class.forName(modelClassName)); + } catch (ClassNotFoundException e) { + throw new IllegalArgumentException( + String.format("Unsupported type \"%s\" for TOSCA mapping %s: no class found for %s", // + javaBean, toscaType, modelClassName)); + } + } + } + + public static Class getModelFromType(String typePrefix) { + return typeToModel.get(typePrefix); + } }