X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fmaven-yang-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang2sources%2Fplugin%2FConfigArg.java;h=88f4dde31a538a567cfe7ed5199a4fae5776a8e8;hb=refs%2Fchanges%2F78%2F578%2F1;hp=0ce985d334c4f6baee81f57713f7fe91d84ec906;hpb=66b4fbc0fd997591f71745f514013484abb30175;p=controller.git 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 0ce985d334..88f4dde31a 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,89 +8,86 @@ 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 { - public static final String CODE_GEN_DEFAULT_DIR = "code-generator-files/"; - public static final String RESOURCE_GEN_DEFAULT_DIR = "resource-generator-files/"; - - protected File outputBaseDir; - - public ConfigArg(File outputBaseDir) { - this.outputBaseDir = outputBaseDir; - } - public ConfigArg() { - } + private final File outputBaseDir; - public File getOutputBaseDir() { - return outputBaseDir; + public ConfigArg(String outputBaseDir) { + this.outputBaseDir = outputBaseDir == null ? null : new File(outputBaseDir); } - public abstract void check(); - - /** - * Configuration argument for resource generator class and output directory. - */ - public static final class ResourceProviderArg extends ConfigArg { - private String resourceProviderClass; - - public ResourceProviderArg() { - } - - public ResourceProviderArg(String resourceProviderClass) { - this(resourceProviderClass, new File(RESOURCE_GEN_DEFAULT_DIR)); - } - - public ResourceProviderArg(String resourceProviderClass, - File outputBaseDir) { - super(outputBaseDir); - this.resourceProviderClass = resourceProviderClass; - } - - @Override - public void check() { - Preconditions - .checkNotNull(resourceProviderClass, - "resourceProviderClass for ResourceProvider cannot be null"); + public File getOutputBaseDir(MavenProject project) { + if (outputBaseDir == null) { + return null; } - - public String getResourceProviderClass() { - return resourceProviderClass; + if (outputBaseDir.isAbsolute()) { + return outputBaseDir; + } else { + return new File(project.getBasedir(), outputBaseDir.getPath()); } } + public abstract void check(); + /** * Configuration argument for code generator class and output directory. */ public static final class CodeGeneratorArg extends ConfigArg { + 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); + + private Map additionalConfiguration = Maps.newHashMap(); public CodeGeneratorArg() { - super(new File(CODE_GEN_DEFAULT_DIR)); + super(null); } public CodeGeneratorArg(String codeGeneratorClass) { - this(codeGeneratorClass, new File(CODE_GEN_DEFAULT_DIR)); + this(codeGeneratorClass, null); } - public CodeGeneratorArg(String codeGeneratorClass, File outputBaseDir) { + public CodeGeneratorArg(String codeGeneratorClass, String outputBaseDir) { super(outputBaseDir); this.codeGeneratorClass = codeGeneratorClass; } + 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(codeGeneratorClass, "codeGeneratorClass for CodeGenerator cannot be null"); } 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 +}