X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fbinding-java-api-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fjava%2Fapi%2Fgenerator%2FInterfaceGenerator.java;h=27570ca77d7ede88b8c72cb110dfdcbfced1a634;hb=3e438a825b58c4789cbad87f4e0a9a328b78a778;hp=fe0b24f890711969f4a6c446597919101caa2581;hpb=a1124bebabbd033f4f19f991ce8e3b0b45e18d29;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/InterfaceGenerator.java b/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/InterfaceGenerator.java index fe0b24f890..27570ca77d 100644 --- a/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/InterfaceGenerator.java +++ b/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/InterfaceGenerator.java @@ -20,6 +20,7 @@ import org.opendaylight.controller.sal.binding.model.api.*; public final class InterfaceGenerator implements CodeGenerator { private Map imports; + private Map innerTypeImports; private String generateEnums(List enums) { String result = ""; @@ -59,21 +60,40 @@ public final class InterfaceGenerator implements CodeGenerator { return result; } + public String generateInnerClasses(final List generatedTypes) throws IOException { + String result = ""; + + if (generatedTypes != null) { + ClassCodeGenerator classCodeGenerator = new ClassCodeGenerator(); + for (GeneratedType genType : generatedTypes) { + if (genType instanceof GeneratedTransferObject) { + result = result + classCodeGenerator.generateOnlyClass(genType, imports).toString(); + result = result + NL + NL; + } + } + } + + return result; + } + public Writer generate(Type type) throws IOException { Writer writer = new StringWriter(); if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) { final GeneratedType genType = (GeneratedType) type; imports = GeneratorUtil.createImports(genType); + innerTypeImports = GeneratorUtil.createChildImports(genType); final String currentPkg = genType.getPackageName(); final List constants = genType.getConstantDefinitions(); final List methods = genType.getMethodDefinitions(); final List enums = genType.getEnumerations(); + final List enclosedGeneratedTypes = genType.getEnclosedTypes(); writer.write(GeneratorUtil.createPackageDeclaration(genType.getPackageName())); writer.write(NL); - final List importLines = GeneratorUtil.createImportLines(imports); + List importLines = GeneratorUtil.createImportLines(imports, innerTypeImports); + for (String line : importLines) { writer.write(line + NL); } @@ -81,6 +101,7 @@ public final class InterfaceGenerator implements CodeGenerator { writer.write(GeneratorUtil.createIfcDeclaration(genType, "", imports)); writer.write(NL); + writer.write(generateInnerClasses(enclosedGeneratedTypes)); writer.write(generateEnums(enums)); writer.write(generateConstants(constants, currentPkg)); writer.write(generateMethods(methods, currentPkg));