diff options
Diffstat (limited to 'src/main/java/org/onap/aai/babel/xml/generator/model/WidgetType.java')
-rw-r--r-- | src/main/java/org/onap/aai/babel/xml/generator/model/WidgetType.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/main/java/org/onap/aai/babel/xml/generator/model/WidgetType.java b/src/main/java/org/onap/aai/babel/xml/generator/model/WidgetType.java new file mode 100644 index 0000000..2cab6ae --- /dev/null +++ b/src/main/java/org/onap/aai/babel/xml/generator/model/WidgetType.java @@ -0,0 +1,73 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.aai.babel.xml.generator.model; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * Widget Type Enumeration. + * + */ +public class WidgetType { + + /** + * Dynamically created set of Widget Types. + */ + private static Map<String, WidgetType> elements = new LinkedHashMap<>(); + + /** + * Types that must be present for Model generation to function correctly. + */ + private static final List<String> mandatoryElements = Arrays.asList( // + "SERVICE", "VF", "VFC", "VSERVER", "VOLUME", "FLAVOR", "TENANT", "VOLUME_GROUP", "LINT", "L3_NET", + "VFMODULE", "IMAGE", "OAM_NETWORK", "ALLOTTED_RESOURCE", "TUNNEL_XCONNECT", "CONFIGURATION", "CR", + "INSTANCE_GROUP"); + + private final String name; + + public WidgetType(String name) { + this.name = name; + elements.put(name, this); + } + + public static void validateElements() { + mandatoryElements.forEach(WidgetType::valueOf); + } + + public static WidgetType valueOf(String typeName) { + WidgetType type = elements.get(typeName); + if (type == null) { + throw new IllegalArgumentException("Unknown type " + typeName); + } + return type; + } + + @Override + public String toString() { + return name; + } + +} + |