X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fbinding-java-api-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fjava%2Fapi%2Fgenerator%2FGeneratorJavaFile.java;fp=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fbinding-java-api-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fjava%2Fapi%2Fgenerator%2FGeneratorJavaFile.java;h=474e4ad0f931f8f9ec0685680db9c07ea440460d;hb=193bf712a646cd9464d4af055f637ba33bf30cdd;hp=be115c9a45fb9e5b6d40a332bafcd4909a32ae5f;hpb=95a397d2f544fbf9d629064678e05da4669bb2a6;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/GeneratorJavaFile.java b/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/GeneratorJavaFile.java index be115c9a45..474e4ad0f9 100644 --- a/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/GeneratorJavaFile.java +++ b/opendaylight/sal/yang-prototype/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/controller/sal/java/api/generator/GeneratorJavaFile.java @@ -20,18 +20,23 @@ import java.util.Set; import org.opendaylight.controller.sal.binding.model.api.CodeGenerator; import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject; import org.opendaylight.controller.sal.binding.model.api.GeneratedType; +import org.opendaylight.controller.sal.binding.model.api.Type; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class GeneratorJavaFile { + private static final Logger log = LoggerFactory + .getLogger(GeneratorJavaFile.class); private final CodeGenerator interfaceGenerator; private final ClassCodeGenerator classGenerator; - private final Set types; + private final Set genTypes; private final Set genTransferObjects; public GeneratorJavaFile(final CodeGenerator codeGenerator, final Set types) { this.interfaceGenerator = codeGenerator; - this.types = types; + this.genTypes = types; this.genTransferObjects = new HashSet(); classGenerator = new ClassCodeGenerator(); } @@ -40,72 +45,87 @@ public class GeneratorJavaFile { final Set genTransferObjects) { this.interfaceGenerator = new InterfaceGenerator(); this.classGenerator = new ClassCodeGenerator(); - this.types = types; + this.genTypes = types; this.genTransferObjects = genTransferObjects; } - public List generateToFile() throws IOException { - return generateToFile(null); - } - + @Deprecated public List generateToFile(String path) throws IOException { final List result = new ArrayList(); - for (GeneratedType type : types) { - String parentPath = generateParentPath(path, - type.getPackageName()); + for (GeneratedType genType : genTypes) { + final String parentPath = generateParentPath(path, + genType.getPackageName()); - File file = new File(parentPath, type.getName() + ".java"); - File parent = file.getParentFile(); - if (!parent.exists()) { - parent.mkdirs(); + final File directory = new File(parentPath); + final File genFile = generateTypeToJavaFile(directory, genType, + interfaceGenerator); + + if (genFile != null) { + result.add(genFile); } + } - if (!file.exists()) { - FileWriter fw = null; - BufferedWriter bw = null; + for (GeneratedTransferObject transferObject : genTransferObjects) { + final String parentPath = generateParentPath(path, + transferObject.getPackageName()); - file.createNewFile(); - fw = new FileWriter(file); - bw = new BufferedWriter(fw); - Writer writer = interfaceGenerator.generate(type); - bw.write(writer.toString()); + final File directory = new File(parentPath); + final File genFile = generateTypeToJavaFile(directory, + transferObject, classGenerator); - if (bw != null) { - bw.close(); - } - result.add(file); + if (genFile != null) { + result.add(genFile); } } + return result; + } + public List generateToFile(final File directory) throws IOException { + final List result = new ArrayList(); + for (GeneratedType type : genTypes) { + final File genFile = generateTypeToJavaFile(directory, type, + interfaceGenerator); + + if (genFile != null) { + result.add(genFile); + } + } for (GeneratedTransferObject transferObject : genTransferObjects) { - String parentPath = generateParentPath(path, - transferObject.getPackageName()); + final File genFile = generateTypeToJavaFile(directory, + transferObject, classGenerator); - File file = new File(parentPath, transferObject.getName() + ".java"); - File parent = file.getParentFile(); - if (!parent.exists()) { - parent.mkdirs(); + if (genFile != null) { + result.add(genFile); } + } + return result; + } - if (!file.exists()) { - FileWriter fw = null; - BufferedWriter bw = null; + private File generateTypeToJavaFile(final File directory, final Type type, + final CodeGenerator generator) throws IOException { + if ((directory != null) && (type != null) && (generator != null)) { + if (!directory.exists()) { + directory.mkdirs(); + } + + final File file = new File(directory, type.getName() + ".java"); + try (final FileWriter fw = new FileWriter(file)) { file.createNewFile(); - fw = new FileWriter(file); - bw = new BufferedWriter(fw); - Writer writer = classGenerator.generate(transferObject); - bw.write(writer.toString()); - if (bw != null) { - bw.close(); + try (final BufferedWriter bw = new BufferedWriter(fw)) { + Writer writer = generator.generate(type); + bw.write(writer.toString()); } - result.add(file); + } catch (IOException e) { + log.error(e.getMessage()); + throw new IOException(e.getMessage()); } - } - return result; + return file; + } + return null; } private String generateParentPath(String path, String pkg) { @@ -142,5 +162,4 @@ public class GeneratorJavaFile { } return fullPath; } - }