From b17042b955489d8a023d09abad5436ff9b900dc3 Mon Sep 17 00:00:00 2001 From: Denes Nemeth Date: Mon, 12 Feb 2018 20:55:54 +0100 Subject: Updating Nokia driver Change-Id: I950afe6acbdb359cd67a448024f006a45e8fc293 Signed-off-by: Denes Nemeth Issue-ID: VFC-728 --- nokiav2/generatortools/pom.xml | 35 +++++++++ .../nokia/cbam/swagger/CbamJavaClientCodegen.java | 85 ++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 nokiav2/generatortools/pom.xml create mode 100644 nokiav2/generatortools/src/main/java/com/nokia/cbam/swagger/CbamJavaClientCodegen.java (limited to 'nokiav2/generatortools') diff --git a/nokiav2/generatortools/pom.xml b/nokiav2/generatortools/pom.xml new file mode 100644 index 00000000..48f29234 --- /dev/null +++ b/nokiav2/generatortools/pom.xml @@ -0,0 +1,35 @@ + + + + + org.onap.vfc.nfvo.driver.vnfm.svnfm.nokiav2 + vfc-nfvo-driver-vnfm-svnfm-nokiav2 + 1.1.0-SNAPSHOT + + 4.0.0 + org.onap.vfc.nfvo.driver.vnfm.svnfm.nokiav2 + generatortools + 1.1.0-SNAPSHOT + vfc/nfvo/driver/vnfm/svnfm/nokiav2/generatortools + + + io.swagger + swagger-codegen + 2.2.3 + + + diff --git a/nokiav2/generatortools/src/main/java/com/nokia/cbam/swagger/CbamJavaClientCodegen.java b/nokiav2/generatortools/src/main/java/com/nokia/cbam/swagger/CbamJavaClientCodegen.java new file mode 100644 index 00000000..8f82689c --- /dev/null +++ b/nokiav2/generatortools/src/main/java/com/nokia/cbam/swagger/CbamJavaClientCodegen.java @@ -0,0 +1,85 @@ +/* +* Copyright 2016-2017 Nokia Corporation +* +* 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. +*/ + +package com.nokia.cbam.swagger; + +import com.google.common.collect.Sets; +import io.swagger.codegen.*; +import io.swagger.models.Model; +import io.swagger.models.ModelImpl; + +import java.io.File; +import java.util.*; +import io.swagger.codegen.languages.JavaClientCodegen; + +import static com.google.common.collect.Sets.newHashSet; + +public class CbamJavaClientCodegen extends JavaClientCodegen { + public CbamJavaClientCodegen() { + supportsInheritance = false; + for (CliOption cliOption : this.cliOptions) { + if(cliOption.getType().equals("useRxJava")){ + cliOption.setDefault("true"); + } + System.err.println(cliOption.getOpt() + cliOption.getDefault()); + } + + } + + @Override + public CodegenModel fromModel(String name, Model model, Map allDefinitions) { + CodegenModel m = super.fromModel(name, model, allDefinitions); + //remove the fields inherited from parent objects + remove(m, newHashSet("OPENSTACK_V3_INFO", "OPENSTACK_V2_INFO", "OTHER_VIM_INFO", "VMWARE_VCLOUD_INFO"), newHashSet("id")); + remove(m, newHashSet("OtherNotification", "VnfIdentifierCreationNotification", "VnfIdentifierDeletionNotification", "VnfInfoAttributeValueChangeNotification", "VnfLifecycleChangeNotification"), newHashSet("notificationType", "subscriptionId", "timestamp", "vnfInstanceId")); + + if(model instanceof ModelImpl && (!m.isEnum) && !m.hasVars) { + typeMapping.put(m.classname, typeMapping.get(((ModelImpl)model).getType())); + } + return m; + } + + public void remove(CodegenModel m, Set classNames, Set fieldNames){ + System.err.println("**** Processing " + m.name); + if(classNames.contains(m.name)){ + System.err.println("**** Processing " + m.name); + Iterator iterator = m.vars.iterator(); + while(iterator.hasNext()){ + CodegenProperty prop = iterator.next(); + if(fieldNames.contains(prop.name)){ + System.err.println("**** Removing: " + prop.name + " from " + m.name); + iterator.remove(); + } + System.err.println("********* Keeping " + prop.name + " from " + m.name); + } + } + } + + @Override + public Map postProcessAllModels(Map objs) { + Map m = super.postProcessAllModels(objs); + for(Map.Entry entry: m.entrySet()) { + CodegenModel cm = ((HashMap)((List)((HashMap)entry.getValue()).get("models")).get(0)).get("model"); + for (CodegenProperty var : cm.vars) { + if (typeMapping.containsKey(var.datatype)) { + var.dataFormat = var.datatypeWithEnum = typeMapping.get(var.datatype); + } + } + } + return m; + } + +} -- cgit 1.2.3-korg