Yang-maven-plugin refactored + fixed bugs.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / maven-yang / src / main / java / org / opendaylight / controller / yang2sources / spi / CodeGenerator.java
index 2b39320989e542e4c55a4d83f330562a8404809a..df33d4c5919e81070c8947d2d30b01182fd85a3a 100644 (file)
@@ -8,11 +8,41 @@
 package org.opendaylight.controller.yang2sources.spi;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
 
+import org.apache.maven.plugin.logging.Log;
+import org.opendaylight.controller.yang.model.api.Module;
 import org.opendaylight.controller.yang.model.api.SchemaContext;
 
+/**
+ * Classes implementing this interface can be submitted to maven-yang-plugin's
+ * generate-sources goal.
+ */
 public interface CodeGenerator {
 
-    Collection<File> generateSources(SchemaContext context, File outputBaseDir);
+    /**
+     * Generate sources from provided {@link SchemaContext}
+     *
+     * @param context
+     *            parsed from yang files
+     * @param outputBaseDir
+     *            expected output directory for generated sources configured by
+     *            user
+     * @param currentModules
+     *            yang modules parsed from yangFilesRootDir
+     * @param log
+     *            maven logger
+     * @return collection of files that were generated from schema context
+     * @throws IOException
+     */
+    Collection<File> generateSources(SchemaContext context, File outputBaseDir,
+            Set<Module> currentModules, File projectBaseDir)
+            throws IOException;
+
+    void setLog(Log log);
+
+    void setAdditionalConfig(Map<String, String> additionalConfiguration);
 }