Added default output directory to CodeGeneratorImpl in maven-sal-api-gen-plugin.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / maven-yang-plugin / src / main / java / org / opendaylight / controller / yang2sources / plugin / ConfigArg.java
index aaf7080a6234c8e6a4155b42ec8dc20d3c7cc58f..88f4dde31a538a567cfe7ed5199a4fae5776a8e8 100644 (file)
@@ -23,10 +23,13 @@ public abstract class ConfigArg {
     private final File outputBaseDir;
 
     public ConfigArg(String outputBaseDir) {
-        this.outputBaseDir = new File(outputBaseDir);
+        this.outputBaseDir = outputBaseDir == null ? null : new File(outputBaseDir);
     }
 
     public File getOutputBaseDir(MavenProject project) {
+        if (outputBaseDir == null) {
+            return null;
+        }
         if (outputBaseDir.isAbsolute()) {
             return outputBaseDir;
         } else {
@@ -40,18 +43,19 @@ public abstract class ConfigArg {
      * 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<String, String> additionalConfiguration = Maps.newHashMap();
 
         public CodeGeneratorArg() {
-            super(CODE_GEN_DEFAULT_DIR);
+            super(null);
         }
 
         public CodeGeneratorArg(String codeGeneratorClass) {
-            this(codeGeneratorClass, CODE_GEN_DEFAULT_DIR);
+            this(codeGeneratorClass, null);
         }
 
         public CodeGeneratorArg(String codeGeneratorClass, String outputBaseDir) {
@@ -59,16 +63,29 @@ public abstract class ConfigArg {
             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<String, String> getAdditionalConfiguration() {
             return additionalConfiguration;
         }