X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fmaven-yang-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang2sources%2Fplugin%2FConfigArg.java;h=0df9a6345ee9384b316f3d71093fa19a9796a658;hp=85f2d8905dd51e48e648a495c85dc8f8d93afaf1;hb=e2dff6dc15408745a6f5988e6874be2a768c6c97;hpb=16a5e410667863944b3e83e9a853401ff55cebb4 diff --git a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/ConfigArg.java b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/ConfigArg.java index 85f2d8905d..0df9a6345e 100644 --- a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/ConfigArg.java +++ b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/ConfigArg.java @@ -8,84 +8,87 @@ package org.opendaylight.controller.yang2sources.plugin; import java.io.File; +import java.util.Map; + +import org.apache.maven.project.MavenProject; import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; /** * Base complex configuration arguments */ public abstract class ConfigArg { - protected File outputBaseDir; - - public ConfigArg(File outputBaseDir) { - this.outputBaseDir = outputBaseDir; - } + private final File outputBaseDir; - public ConfigArg() { + public ConfigArg(String outputBaseDir) { + this.outputBaseDir = new File(outputBaseDir); } - public File getOutputBaseDir() { - return outputBaseDir; + public File getOutputBaseDir(MavenProject project) { + if (outputBaseDir.isAbsolute()) { + return outputBaseDir; + } else { + return new File(project.getBasedir(), outputBaseDir.getPath()); + } } public abstract void check(); /** - * Configuration argument for resource generator class and output directory. + * Configuration argument for code generator class and output directory. */ - public static final class ResourceProviderArg extends ConfigArg { - private String resourceProviderClass; - - public ResourceProviderArg() { - } + public static final class CodeGeneratorArg extends ConfigArg { + private static final String CODE_GEN_DEFAULT_DIR = "target" + + File.separator + "generated-sources"; + private static final String CODE_GEN_DEFAULT_RESOURCE_DIR = "target" + + File.separator + "generated-resources"; + private String codeGeneratorClass; + private File resourceBaseDir = new File(CODE_GEN_DEFAULT_RESOURCE_DIR); - public ResourceProviderArg(String resourceProviderClass, - File outputBaseDir) { - super(outputBaseDir); - this.resourceProviderClass = resourceProviderClass; - } + private Map additionalConfiguration = Maps.newHashMap(); - @Override - public void check() { - Preconditions - .checkNotNull(resourceProviderClass, - "resourceProviderClass for ResourceProvider cannot be null"); - Preconditions.checkNotNull(outputBaseDir, - "outputBaseDir for ResourceProvider cannot be null, " - + resourceProviderClass); + public CodeGeneratorArg() { + super(CODE_GEN_DEFAULT_DIR); } - public String getResourceProviderClass() { - return resourceProviderClass; + public CodeGeneratorArg(String codeGeneratorClass) { + this(codeGeneratorClass, CODE_GEN_DEFAULT_DIR); } - } - - /** - * Configuration argument for code generator class and output directory. - */ - public static final class CodeGeneratorArg extends ConfigArg { - private String codeGeneratorClass; - public CodeGeneratorArg() { + public CodeGeneratorArg(String codeGeneratorClass, String outputBaseDir) { + super(outputBaseDir); + this.codeGeneratorClass = codeGeneratorClass; } - public CodeGeneratorArg(String codeGeneratorClass, File outputBaseDir) { + public CodeGeneratorArg(String codeGeneratorClass, + String outputBaseDir, String resourceBaseDir) { super(outputBaseDir); this.codeGeneratorClass = codeGeneratorClass; + this.resourceBaseDir = new File(resourceBaseDir); } @Override public void check() { Preconditions.checkNotNull(codeGeneratorClass, "codeGeneratorClass for CodeGenerator cannot be null"); - Preconditions.checkNotNull(outputBaseDir, - "outputBaseDir for CodeGenerator cannot be null, " - + codeGeneratorClass); } public String getCodeGeneratorClass() { return codeGeneratorClass; } + + public File getResourceBaseDir(MavenProject project) { + if (resourceBaseDir.isAbsolute()) { + return resourceBaseDir; + } else { + return new File(project.getBasedir(), resourceBaseDir.getPath()); + } + } + + public Map getAdditionalConfiguration() { + return additionalConfiguration; + } } -} \ No newline at end of file +}