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=0ce985d334c4f6baee81f57713f7fe91d84ec906;hb=e2dff6dc15408745a6f5988e6874be2a768c6c97;hpb=b4f7106f7b4267b51701eff2d3499c0e12423048 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..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,81 +8,67 @@ 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; - } + 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. - */ - 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 String getResourceProviderClass() { - return resourceProviderClass; - } - } - /** * Configuration argument for code generator class and output directory. */ 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); + + private Map additionalConfiguration = Maps.newHashMap(); public CodeGeneratorArg() { - super(new File(CODE_GEN_DEFAULT_DIR)); + super(CODE_GEN_DEFAULT_DIR); } public CodeGeneratorArg(String codeGeneratorClass) { - this(codeGeneratorClass, new File(CODE_GEN_DEFAULT_DIR)); + this(codeGeneratorClass, CODE_GEN_DEFAULT_DIR); } - 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, @@ -92,5 +78,17 @@ public abstract class ConfigArg { 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 +}