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=aaf7080a6234c8e6a4155b42ec8dc20d3c7cc58f;hp=217c6f5b86a7f923f22d136c04a07379c8d2c10f;hb=3556bca9524bd19e738ac0d86c4e8b4d5add0a21;hpb=3017ec571b85a1190f157939d17de03f43ccf5cf 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 217c6f5b86..aaf7080a62 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,74 +8,53 @@ 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. - */ - public static final class ResourceProviderArg extends ConfigArg { - private String resourceProviderClass; - - public ResourceProviderArg() { - } - - public ResourceProviderArg(String resourceProviderClass) { - this(resourceProviderClass, new File("outDir/")); - } - - 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 String codeGeneratorClass; + private Map additionalConfiguration = Maps.newHashMap(); + public CodeGeneratorArg() { + super(CODE_GEN_DEFAULT_DIR); } public CodeGeneratorArg(String codeGeneratorClass) { - this(codeGeneratorClass, new File("outDir/")); + this(codeGeneratorClass, CODE_GEN_DEFAULT_DIR); } - public CodeGeneratorArg(String codeGeneratorClass, File outputBaseDir) { + public CodeGeneratorArg(String codeGeneratorClass, String outputBaseDir) { super(outputBaseDir); this.codeGeneratorClass = codeGeneratorClass; } @@ -89,5 +68,9 @@ public abstract class ConfigArg { public String getCodeGeneratorClass() { return codeGeneratorClass; } + + public Map getAdditionalConfiguration() { + return additionalConfiguration; + } } -} \ No newline at end of file +}