X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fbabel%2Fxml%2Fgenerator%2Fmodel%2FModel.java;h=0e2b8d57790c2c4f9007e6fbd7fdd9e25183c917;hb=7fcc74469c941c1834cd02b54ff5ca88a53bf83b;hp=956db40f913fb35e5c50067d1735d74ff8ce837a;hpb=5b6b32d3ab0dc27c72351f6aa9e0bdef8d599e13;p=aai%2Fbabel.git diff --git a/src/main/java/org/onap/aai/babel/xml/generator/model/Model.java b/src/main/java/org/onap/aai/babel/xml/generator/model/Model.java index 956db40..0e2b8d5 100644 --- a/src/main/java/org/onap/aai/babel/xml/generator/model/Model.java +++ b/src/main/java/org/onap/aai/babel/xml/generator/model/Model.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,7 +20,6 @@ */ package org.onap.aai.babel.xml.generator.model; -import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -30,6 +29,7 @@ import java.util.Optional; import java.util.Set; import org.onap.aai.babel.logging.ApplicationMsgs; import org.onap.aai.babel.logging.LogHelper; +import org.onap.aai.babel.xml.generator.data.WidgetConfigurationUtil; import org.onap.aai.babel.xml.generator.error.IllegalAccessException; import org.onap.aai.babel.xml.generator.types.Cardinality; import org.onap.aai.babel.xml.generator.types.ModelType; @@ -41,21 +41,6 @@ public abstract class Model { private static Logger log = LogHelper.INSTANCE; - private static Map> typeToModel = new HashMap<>(); - static { - typeToModel.put("org.openecomp.resource.vf.allottedResource", AllotedResource.class); - typeToModel.put("org.openecomp.resource.vfc.AllottedResource", ProvidingService.class); - typeToModel.put("org.openecomp.resource.vfc", VServerWidget.class); - typeToModel.put("org.openecomp.resource.cp", LIntfWidget.class); - typeToModel.put("org.openecomp.cp", LIntfWidget.class); - typeToModel.put("org.openecomp.resource.vl", L3Network.class); - typeToModel.put("org.openecomp.resource.vf", VirtualFunction.class); - typeToModel.put("org.openecomp.groups.vfmodule", VfModule.class); - typeToModel.put("org.openecomp.groups.VfModule", VfModule.class); - typeToModel.put("org.openecomp.resource.vfc.nodes.heat.cinder", VolumeWidget.class); - typeToModel.put("org.openecomp.nodes.PortMirroringConfiguration", Configuration.class); - } - private enum ModelIdentification { ID("vfModuleModelInvariantUUID", "serviceInvariantUUID", "resourceInvariantUUID", "invariantUUID", "providing_service_invariant_uuid") { @@ -154,18 +139,37 @@ public abstract class Model { private static Optional getModelFromType(String typePrefix) { Optional modelToBeReturned = Optional.empty(); - Class clazz = typeToModel.get(typePrefix); + Class clazz = WidgetConfigurationUtil.getModelFromType(typePrefix); if (clazz != null) { try { modelToBeReturned = Optional.ofNullable(clazz.getConstructor().newInstance()); - } catch (InstantiationException | java.lang.IllegalAccessException | IllegalArgumentException - | InvocationTargetException | NoSuchMethodException | SecurityException e) { + } catch (Exception e) { log.error(ApplicationMsgs.INVALID_CSAR_FILE, e); } } return modelToBeReturned; } + /** + * Gets the object (model) corresponding to the supplied TOSCA type information, prioritising the metadata + * information. + * + * @param toscaType + * the TOSCA type + * @param metaDataType + * the type from the TOSCA metadata + * @return the model for the type, or null + */ + public static Model getModelFor(String toscaType, String metaDataType) { + if ("Configuration".equals(metaDataType)) { + return new Configuration(); + } else if ("CR".equals(metaDataType)) { + return new CR(); + } else { + return getModelFor(toscaType); + } + } + public abstract boolean addResource(Resource resource); public abstract boolean addWidget(Widget resource); @@ -178,8 +182,8 @@ public abstract class Model { * @return the cardinality */ public Cardinality getCardinality() { - org.onap.aai.babel.xml.generator.types.Model model = this.getClass() - .getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); + org.onap.aai.babel.xml.generator.types.Model model = + this.getClass().getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); return model.cardinality(); } @@ -189,8 +193,8 @@ public abstract class Model { * @return the delete flag */ public boolean getDeleteFlag() { - org.onap.aai.babel.xml.generator.types.Model model = this.getClass() - .getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); + org.onap.aai.babel.xml.generator.types.Model model = + this.getClass().getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); return model.dataDeleteFlag(); } @@ -239,8 +243,8 @@ public abstract class Model { * @return the widget version id */ public String getWidgetId() { - org.onap.aai.babel.xml.generator.types.Model model = this.getClass() - .getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); + org.onap.aai.babel.xml.generator.types.Model model = + this.getClass().getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); return Widget.getWidget(model.widget()).getId(); } @@ -250,8 +254,8 @@ public abstract class Model { * @return the invariant id */ public String getWidgetInvariantId() { - org.onap.aai.babel.xml.generator.types.Model model = this.getClass() - .getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); + org.onap.aai.babel.xml.generator.types.Model model = + this.getClass().getAnnotation(org.onap.aai.babel.xml.generator.types.Model.class); return Widget.getWidget(model.widget()).getWidgetId(); } @@ -290,4 +294,5 @@ public abstract class Model { throw new IllegalAccessException(GENERATOR_AAI_ERROR_UNSUPPORTED_WIDGET_OPERATION); } } + }