import java.io.IOException;\r
import java.io.Writer;\r
import java.util.ArrayList;\r
+import java.util.HashSet;\r
import java.util.List;\r
import java.util.Set;\r
\r
import org.opendaylight.controller.sal.binding.model.api.CodeGenerator;\r
+import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;\r
import org.opendaylight.controller.sal.binding.model.api.GeneratedType;\r
\r
public class GeneratorJavaFile {\r
\r
- private final CodeGenerator codeGenerator;\r
+ private final CodeGenerator interfaceGenerator;\r
+ private final CompositeKeyGenerator classGenerator;\r
private final Set<GeneratedType> types;\r
+ private final Set<GeneratedTransferObject> genTransferObjects;\r
\r
- public GeneratorJavaFile(CodeGenerator codeGenerator,\r
- Set<GeneratedType> types) {\r
- this.codeGenerator = codeGenerator;\r
+ public GeneratorJavaFile(final CodeGenerator codeGenerator,\r
+ final Set<GeneratedType> types) {\r
+ this.interfaceGenerator = codeGenerator;\r
this.types = types;\r
+ this.genTransferObjects = new HashSet<GeneratedTransferObject>();\r
+ classGenerator = new CompositeKeyGenerator();\r
+ }\r
+\r
+ public GeneratorJavaFile(final Set<GeneratedType> types,\r
+ final Set<GeneratedTransferObject> genTransferObjects) {\r
+ this.interfaceGenerator = new InterfaceGenerator();\r
+ this.classGenerator = new CompositeKeyGenerator();\r
+ this.types = types;\r
+ this.genTransferObjects = genTransferObjects;\r
}\r
\r
public boolean generateToFile() {\r
file.createNewFile();\r
fw = new FileWriter(file);\r
bw = new BufferedWriter(fw);\r
- Writer writer = codeGenerator.generate(type);\r
+ Writer writer = interfaceGenerator.generate(type);\r
+ bw.write(writer.toString());\r
+\r
+ if (bw != null) {\r
+ try {\r
+ bw.close();\r
+ } catch (IOException e) {\r
+ // TODO: log?\r
+ }\r
+ }\r
+ }\r
+ }\r
+ for (GeneratedTransferObject transferObject : genTransferObjects) {\r
+ String parentPath = generateParentPath(path,\r
+ transferObject.getPackageName());\r
+\r
+ File file = new File(parentPath, transferObject.getName() + ".java");\r
+ File parent = file.getParentFile();\r
+ if (!parent.exists()) {\r
+ parent.mkdirs();\r
+ }\r
+\r
+ if (!file.exists()) {\r
+ FileWriter fw = null;\r
+ BufferedWriter bw = null;\r
+\r
+ file.createNewFile();\r
+ fw = new FileWriter(file);\r
+ bw = new BufferedWriter(fw);\r
+ Writer writer = classGenerator.generate(transferObject);\r
bw.write(writer.toString());\r
\r
if (bw != null) {\r