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=210b37fa15b28468f9455180c9846881d221850c;hb=0b203f52cbe128efa17a6c400b6653c8e6a84ba8;hpb=b4f7106f7b4267b51701eff2d3499c0e12423048 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 210b37fa15..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 @@ -12,39 +12,71 @@ import java.io.IOException; import java.util.Collection; import java.util.HashSet; import java.util.List; +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.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 yangModulesNames) throws IOException { + 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); } + @Override + public void setLog(Log log) { + // use maven logging if necessary + + } + + @Override + public void setAdditionalConfig(Map additionalConfiguration) { + // no additional config utilized + } + + @Override + public void setResourceBaseDir(File resourceBaseDir) { + // no resource processing necessary + } + + @Override + public void setMavenProject(MavenProject project) { + // no additional information needed + } + }