X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fmaven-sal-api-gen-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmaven%2Fsal%2Fapi%2Fgen%2Fplugin%2FCodeGeneratorImpl.java;h=4ce8adcec920fd98faf70321ba057a1d734cc3e6;hp=1876c689c0e5a10b44f554f51905e4f9b4a6ad0f;hb=0b203f52cbe128efa17a6c400b6653c8e6a84ba8;hpb=3556bca9524bd19e738ac0d86c4e8b4d5add0a21 diff --git a/opendaylight/sal/yang-prototype/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/controller/maven/sal/api/gen/plugin/CodeGeneratorImpl.java b/opendaylight/sal/yang-prototype/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/controller/maven/sal/api/gen/plugin/CodeGeneratorImpl.java index 1876c689c0..4ce8adcec9 100644 --- a/opendaylight/sal/yang-prototype/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/controller/maven/sal/api/gen/plugin/CodeGeneratorImpl.java +++ b/opendaylight/sal/yang-prototype/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/controller/maven/sal/api/gen/plugin/CodeGeneratorImpl.java @@ -16,42 +16,46 @@ import java.util.Map; import java.util.Set; import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.MavenProject; import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator; import org.opendaylight.controller.sal.binding.generator.impl.BindingGeneratorImpl; +import org.opendaylight.controller.sal.binding.model.api.Enumeration; import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject; import org.opendaylight.controller.sal.binding.model.api.GeneratedType; import org.opendaylight.controller.sal.binding.model.api.Type; import org.opendaylight.controller.sal.java.api.generator.GeneratorJavaFile; -import org.opendaylight.controller.yang.model.api.Module; -import org.opendaylight.controller.yang.model.api.SchemaContext; -import org.opendaylight.controller.yang2sources.spi.CodeGenerator; +import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator; -public class CodeGeneratorImpl implements CodeGenerator { +public final class CodeGeneratorImpl implements CodeGenerator { @Override - public Collection generateSources(SchemaContext context, - File outputBaseDir, Set yangModules, File projectBaseDir) + public Collection generateSources(SchemaContext context, File outputBaseDir, Set yangModules) throws IOException { + if (outputBaseDir == null) { + outputBaseDir = new File("target" + File.separator + "generated-sources" + File.separator + "maven-sal-api-gen"); + } final BindingGenerator bindingGenerator = new BindingGeneratorImpl(); - final List types = bindingGenerator.generateTypes(context); - final Set typesToGenerate = new HashSet(); - final Set tosToGenerate = new HashSet(); + final List types = bindingGenerator.generateTypes(context, yangModules); + final Set typesToGenerate = new HashSet<>(); + final Set tosToGenerate = new HashSet<>(); + final Set enumsToGenerate = new HashSet<>(); + for (Type type : types) { if (type instanceof GeneratedTransferObject) { tosToGenerate.add((GeneratedTransferObject) type); } else if (type instanceof GeneratedType) { typesToGenerate.add((GeneratedType) type); + } else if (type instanceof Enumeration) { + enumsToGenerate.add((Enumeration) type); } - } - final GeneratorJavaFile generator = new GeneratorJavaFile( - typesToGenerate, tosToGenerate); + final GeneratorJavaFile generator = new GeneratorJavaFile(typesToGenerate, tosToGenerate, enumsToGenerate); - return generator.generateToFile(outputBaseDir.getPath().startsWith( - projectBaseDir.getPath()) ? outputBaseDir : new File( - projectBaseDir, outputBaseDir.getPath())); + return generator.generateToFile(outputBaseDir); } @Override @@ -65,4 +69,14 @@ public class CodeGeneratorImpl implements CodeGenerator { // no additional config utilized } + @Override + public void setResourceBaseDir(File resourceBaseDir) { + // no resource processing necessary + } + + @Override + public void setMavenProject(MavenProject project) { + // no additional information needed + } + }