Yang-maven-plugin refactored + fixed bugs.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / maven-sal-api-gen-plugin / src / main / java / org / opendaylight / controller / maven / sal / api / gen / plugin / CodeGeneratorImpl.java
index d1b80b3f12c9b9731fee774034b04e8fdb8023bd..1876c689c0e5a10b44f554f51905e4f9b4a6ad0f 100644 (file)
@@ -12,8 +12,10 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
+import org.apache.maven.plugin.logging.Log;
 import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator;
 import org.opendaylight.controller.sal.binding.generator.impl.BindingGeneratorImpl;
 import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
@@ -28,7 +30,8 @@ public class CodeGeneratorImpl implements CodeGenerator {
 
     @Override
     public Collection<File> generateSources(SchemaContext context,
-            File outputBaseDir, Set<Module> yangModules) throws IOException {
+            File outputBaseDir, Set<Module> yangModules, File projectBaseDir)
+            throws IOException {
 
         final BindingGenerator bindingGenerator = new BindingGeneratorImpl();
         final List<Type> types = bindingGenerator.generateTypes(context);
@@ -41,11 +44,25 @@ public class CodeGeneratorImpl implements CodeGenerator {
                 typesToGenerate.add((GeneratedType) type);
             }
 
-
         }
 
-        final GeneratorJavaFile generator = new GeneratorJavaFile(typesToGenerate, tosToGenerate);
-        return generator.generateToFile(outputBaseDir);
+        final GeneratorJavaFile generator = new GeneratorJavaFile(
+                typesToGenerate, tosToGenerate);
+
+        return generator.generateToFile(outputBaseDir.getPath().startsWith(
+                projectBaseDir.getPath()) ? outputBaseDir : new File(
+                projectBaseDir, outputBaseDir.getPath()));
+    }
+
+    @Override
+    public void setLog(Log log) {
+        // use maven logging if necessary
+
+    }
+
+    @Override
+    public void setAdditionalConfig(Map<String, String> additionalConfiguration) {
+        // no additional config utilized
     }
 
 }