[ONOS-4149],[ONOS-3909] YANG list translator impl and bug fixes.
Change-Id: Ia1a94142a3a114815766f661ed850bf9cacde66f
diff --git a/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java b/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java
index 2b5c72c..c3cdabd 100644
--- a/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java
+++ b/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java
@@ -24,12 +24,16 @@
import java.io.InputStream;
import java.io.OutputStream;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+
/**
* Provides the license header for the generated files.
*/
public final class CopyrightHeader {
private static final int EOF = -1;
+ private static final String COPYRIGHT_HEADER_FILE = "CopyrightHeader.txt";
+ private static final String TEMP_FILE = "temp.txt";
private static ClassLoader classLoader = CopyrightHeader.class.getClassLoader();
private static String copyrightHeader;
@@ -47,6 +51,7 @@
* @throws IOException when fails to parse copyright header
*/
public static String getCopyrightHeader() throws IOException {
+
if (copyrightHeader == null) {
parseCopyrightHeader();
}
@@ -59,6 +64,7 @@
* @param header copyright header
*/
private static void setCopyrightHeader(String header) {
+
copyrightHeader = header;
}
@@ -69,11 +75,12 @@
*/
public static void parseCopyrightHeader() throws IOException {
- File temp = new File("temp.txt");
+ File temp = new File(TEMP_FILE);
try {
- InputStream stream = classLoader.getResourceAsStream("CopyrightHeader.txt");
+ InputStream stream = classLoader.getResourceAsStream(COPYRIGHT_HEADER_FILE);
OutputStream out = new FileOutputStream(temp);
+
int index;
while ((index = stream.read()) != EOF) {
out.write(index);
@@ -98,18 +105,20 @@
*/
private static String getStringFileContent(File toAppend) throws IOException {
- BufferedReader bufferReader = new BufferedReader(new FileReader(toAppend));
+ FileReader fileReader = new FileReader(toAppend);
+ BufferedReader bufferReader = new BufferedReader(fileReader);
try {
StringBuilder stringBuilder = new StringBuilder();
String line = bufferReader.readLine();
while (line != null) {
stringBuilder.append(line);
- stringBuilder.append("\n");
+ stringBuilder.append(NEW_LINE);
line = bufferReader.readLine();
}
return stringBuilder.toString();
} finally {
+ fileReader.close();
bufferReader.close();
}
}
diff --git a/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java b/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
index f44da54..3c312fb 100644
--- a/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
+++ b/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
@@ -23,7 +23,17 @@
import java.io.IOException;
import java.io.PrintWriter;
-import org.onosproject.yangutils.utils.UtilConstants;
+import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.MULTIPLE_NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.addPackageInfo;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.convertPathToPkg;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.convertPkgToPath;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.createDirectories;
/**
* Utility to handle file system operations.
@@ -44,8 +54,8 @@
*/
public static boolean doesPackageExist(String pkg) {
- File pkgDir = new File(pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH));
- File pkgWithFile = new File(pkgDir + File.separator + "package-info.java");
+ File pkgDir = new File(convertPkgToPath(pkg));
+ File pkgWithFile = new File(pkgDir + SLASH + "package-info.java");
if (pkgDir.exists() && pkgWithFile.isFile()) {
return true;
}
@@ -63,8 +73,8 @@
if (!doesPackageExist(pkg)) {
try {
- File pack = YangIoUtils.createDirectories(pkg);
- YangIoUtils.addPackageInfo(pack, pkgInfo, pkg.replace(UtilConstants.SLASH, UtilConstants.PERIOD));
+ File pack = createDirectories(pkg);
+ addPackageInfo(pack, pkgInfo, convertPathToPkg(pkg));
} catch (IOException e) {
throw new IOException("failed to create package-info file");
}
@@ -83,9 +93,7 @@
*/
public static void appendFileContents(File toAppend, File srcFile) throws IOException {
- updateFileHandle(srcFile,
- UtilConstants.NEW_LINE + readAppendFile(toAppend.toString(), UtilConstants.FOUR_SPACE_INDENTATION),
- false);
+ updateFileHandle(srcFile, NEW_LINE + readAppendFile(toAppend.toString(), FOUR_SPACE_INDENTATION), false);
return;
}
@@ -106,15 +114,14 @@
String line = bufferReader.readLine();
while (line != null) {
- if (line.equals(UtilConstants.SPACE) | line.equals(UtilConstants.EMPTY_STRING)
- | line.equals(UtilConstants.EIGHT_SPACE_INDENTATION)
- | line.equals(UtilConstants.MULTIPLE_NEW_LINE)) {
- stringBuilder.append(UtilConstants.NEW_LINE);
- } else if (line.equals(UtilConstants.FOUR_SPACE_INDENTATION)) {
- stringBuilder.append(UtilConstants.EMPTY_STRING);
+ if (line.equals(SPACE) | line.equals(EMPTY_STRING) | line.equals(EIGHT_SPACE_INDENTATION)
+ | line.equals(MULTIPLE_NEW_LINE)) {
+ stringBuilder.append(NEW_LINE);
+ } else if (line.equals(FOUR_SPACE_INDENTATION)) {
+ stringBuilder.append(EMPTY_STRING);
} else {
stringBuilder.append(spaces + line);
- stringBuilder.append(UtilConstants.NEW_LINE);
+ stringBuilder.append(NEW_LINE);
}
line = bufferReader.readLine();
}
@@ -131,9 +138,8 @@
* @param inputFile input file
* @param contentTobeAdded content to be appended to the file
* @param isClose when close of file is called.
- * @throws IOException if the named file exists but is a directory rather
- * than a regular file, does not exist but cannot be created, or
- * cannot be opened for any other reason
+ * @throws IOException if the named file exists but is a directory rather than a regular file,
+ * does not exist but cannot be created, or cannot be opened for any other reason
*/
public static void updateFileHandle(File inputFile, String contentTobeAdded, boolean isClose) throws IOException {
diff --git a/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java b/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
index 922348a..2c9c242 100644
--- a/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
+++ b/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
@@ -19,6 +19,36 @@
import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax;
import org.onosproject.yangutils.utils.UtilConstants;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
+import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
+import static org.onosproject.yangutils.utils.UtilConstants.LIST;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ESTRIC;
+import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
+import static org.onosproject.yangutils.utils.UtilConstants.OF;
+import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
+
/**
* Provides javadoc for the generated classes.
*/
@@ -63,17 +93,17 @@
/**
* For getters.
*/
- GETTER,
+ GETTER_METHOD,
/**
* For setters.
*/
- SETTER,
+ SETTER_METHOD,
/**
* For type def's setters.
*/
- TYPE_DEF_SETTER,
+ TYPE_DEF_SETTER_METHOD,
/**
* For type def's constructor.
@@ -83,7 +113,7 @@
/**
* For of method.
*/
- OF,
+ OF_METHOD,
/**
* For default constructor.
@@ -98,7 +128,7 @@
/**
* For build.
*/
- BUILD
+ BUILD_METHOD
}
/**
@@ -110,8 +140,9 @@
* @return javadocs.
*/
public static String getJavaDoc(JavaDocType type, String name, boolean isList) {
+
name = JavaIdentifierSyntax.getLowerCase(JavaIdentifierSyntax.getCamelCase(name));
- String javaDoc = "";
+ String javaDoc = UtilConstants.EMPTY_STRING;
if (type.equals(JavaDocType.IMPL_CLASS)) {
javaDoc = generateForImplClass(name);
} else if (type.equals(JavaDocType.BUILDER_CLASS)) {
@@ -122,19 +153,19 @@
javaDoc = generateForBuilderInterface(name);
} else if (type.equals(JavaDocType.PACKAGE_INFO)) {
javaDoc = generateForPackage(name);
- } else if (type.equals(JavaDocType.GETTER)) {
+ } else if (type.equals(JavaDocType.GETTER_METHOD)) {
javaDoc = generateForGetters(name, isList);
- } else if (type.equals(JavaDocType.TYPE_DEF_SETTER)) {
+ } else if (type.equals(JavaDocType.TYPE_DEF_SETTER_METHOD)) {
javaDoc = generateForTypeDefSetter(name);
} else if (type.equals(JavaDocType.TYPE_DEF_CONSTRUCTOR)) {
javaDoc = generateForTypeDefConstructor(name);
- } else if (type.equals(JavaDocType.SETTER)) {
+ } else if (type.equals(JavaDocType.SETTER_METHOD)) {
javaDoc = generateForSetters(name, isList);
- } else if (type.equals(JavaDocType.OF)) {
+ } else if (type.equals(JavaDocType.OF_METHOD)) {
javaDoc = generateForOf(name);
} else if (type.equals(JavaDocType.DEFAULT_CONSTRUCTOR)) {
javaDoc = generateForDefaultConstructors();
- } else if (type.equals(JavaDocType.BUILD)) {
+ } else if (type.equals(JavaDocType.BUILD_METHOD)) {
javaDoc = generateForBuild(name);
} else {
javaDoc = generateForConstructors(name);
@@ -150,19 +181,18 @@
* @return javaDocs
*/
private static String generateForGetters(String attribute, boolean isList) {
- String getter = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_GETTERS + attribute
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN;
+
+ String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
if (isList) {
- String listAttribute = UtilConstants.LIST.toLowerCase() + UtilConstants.SPACE + UtilConstants.OF
- + UtilConstants.SPACE;
+ String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
getter = getter + listAttribute;
+ } else {
+ getter = getter + VALUE + SPACE + OF + SPACE;
}
- getter = getter + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.JAVA_DOC_END_LINE;
+ getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
return getter;
}
@@ -174,23 +204,18 @@
* @return javaDocs
*/
private static String generateForSetters(String attribute, boolean isList) {
- String setter = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS + attribute
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM;
+
+ String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
if (isList) {
- setter = setter + attribute + UtilConstants.SUFIX_S + UtilConstants.SPACE;
- String listAttribute = UtilConstants.LIST.toLowerCase() + UtilConstants.SPACE + UtilConstants.OF
- + UtilConstants.SPACE;
+ String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
setter = setter + listAttribute;
} else {
- setter = setter + attribute + UtilConstants.SPACE;
+ setter = setter + VALUE + SPACE + OF + SPACE;
}
-
- setter = setter + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.JAVA_DOC_RETURN + UtilConstants.BUILDER_OBJECT + attribute + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+ setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT + attribute
+ + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
return setter;
}
@@ -201,14 +226,12 @@
* @return javaDocs
*/
private static String generateForOf(String attribute) {
- return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_OF + attribute
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
- + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN + UtilConstants.OBJECT
- + UtilConstants.SPACE + UtilConstants.OF + UtilConstants.SPACE + attribute + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+ return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
+ + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
}
/**
@@ -218,12 +241,11 @@
* @return javaDocs
*/
private static String generateForTypeDefSetter(String attribute) {
- return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS_COMMON + attribute
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
- + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+ return (NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
+ + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE);
}
/**
@@ -233,12 +255,11 @@
* @return javaDocs
*/
private static String generateForTypeDefConstructor(String attribute) {
- return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_CONSTRUCTOR + attribute
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
- + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
- + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+ return (NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
+ + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE);
}
/**
@@ -248,8 +269,8 @@
* @return javaDocs
*/
private static String generateForImplClass(String className) {
- return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.IMPL_CLASS_JAVA_DOC
- + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+ return NEW_LINE + JAVA_DOC_FIRST_LINE + IMPL_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
}
/**
@@ -259,8 +280,9 @@
* @return javaDocs
*/
private static String generateForBuilderClass(String className) {
- return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_CLASS_JAVA_DOC
- + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+ return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
+ + JAVA_DOC_END_LINE;
}
/**
@@ -270,8 +292,9 @@
* @return javaDocs
*/
private static String generateForInterface(String interfaceName) {
- return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.INTERFACE_JAVA_DOC
- + interfaceName + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+ return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
+ + JAVA_DOC_END_LINE;
}
/**
@@ -281,8 +304,9 @@
* @return javaDocs
*/
private static String generateForBuilderInterface(String builderforName) {
- return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_INTERFACE_JAVA_DOC + builderforName
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+ return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
+ + JAVA_DOC_END_LINE;
}
/**
@@ -292,8 +316,8 @@
* @return javaDocs
*/
private static String generateForPackage(String packageName) {
- return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.PACKAGE_INFO_JAVADOC + packageName
- + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+ return JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
}
/**
@@ -302,9 +326,9 @@
* @return javaDocs
*/
private static String generateForDefaultConstructors() {
- return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+ return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_DEFAULT_CONSTRUCTOR
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
}
/**
@@ -314,14 +338,12 @@
* @return javaDocs
*/
private static String generateForConstructors(String className) {
- return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_CONSTRUCTOR + className
- + UtilConstants.IMPL + UtilConstants.PERIOD + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.NEW_LINE_ESTRIC
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
- + UtilConstants.BUILDER.toLowerCase() + UtilConstants.OBJECT + UtilConstants.SPACE
- + UtilConstants.BUILDER_OBJECT + UtilConstants.SPACE + className + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+ return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className + IMPL + PERIOD + NEW_LINE
+ + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
+ + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT + SPACE + className + NEW_LINE
+ + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
}
/**
@@ -331,11 +353,10 @@
* @return javaDocs
*/
private static String generateForBuild(String buildName) {
- return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_BUILD + buildName + UtilConstants.PERIOD
- + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.NEW_LINE_ESTRIC
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN
- + UtilConstants.JAVA_DOC_BUILD_RETURN + buildName + UtilConstants.PERIOD + UtilConstants.NEW_LINE
- + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+ return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
+ + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
+ + JAVA_DOC_END_LINE;
}
}
diff --git a/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java b/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
index 54adce9..9de5358 100644
--- a/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
+++ b/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
@@ -23,10 +23,13 @@
import java.util.Stack;
/**
- * Provides the IO services for Yangutils-maven-Plugin.
+ * Provides utility for searching the files in a directory.
*/
public final class YangFileScanner {
+ private static final String JAVA_FILE_EXTENTION = ".java";
+ private static final String YANG_FILE_EXTENTION = ".yang";
+
/**
* Default constructor.
*/
@@ -44,7 +47,7 @@
*/
public static List<String> getJavaFiles(String root) throws NullPointerException, IOException {
- return getFiles(root, ".java");
+ return getFiles(root, JAVA_FILE_EXTENTION);
}
/**
@@ -58,7 +61,7 @@
*/
public static List<String> getYangFiles(String root) throws NullPointerException, IOException {
- return getFiles(root, ".yang");
+ return getFiles(root, YANG_FILE_EXTENTION);
}
/**
@@ -68,8 +71,7 @@
* @param extension file extension
* @return list of required files
* @throws NullPointerException when no file is there
- * @throws IOException when files get deleted while performing the
- * operations
+ * @throws IOException when files get deleted while performing the operations
*/
public static List<String> getFiles(String root, String extension) throws NullPointerException, IOException {
diff --git a/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java b/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
index fcc52e8..866ff97 100644
--- a/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
+++ b/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
@@ -25,13 +25,27 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.io.FileUtils;
import org.apache.maven.model.Resource;
import org.apache.maven.project.MavenProject;
-import org.onosproject.yangutils.utils.UtilConstants;
import org.slf4j.Logger;
import org.sonatype.plexus.build.incremental.BuildContext;
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.ORG;
+import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
+import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.UtilConstants.TEMP;
+import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_RESOURCES;
+import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.appendFileContents;
+import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.updateFileHandle;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.PACKAGE_INFO;
import static org.slf4j.LoggerFactory.getLogger;
/**
@@ -40,8 +54,7 @@
public final class YangIoUtils {
private static final Logger log = getLogger(YangIoUtils.class);
- private static final String TARGET_RESOURCE_PATH = UtilConstants.SLASH + UtilConstants.TEMP + UtilConstants.SLASH
- + UtilConstants.YANG_RESOURCES + UtilConstants.SLASH;
+ private static final String TARGET_RESOURCE_PATH = SLASH + TEMP + SLASH + YANG_RESOURCES + SLASH;
/**
* Default constructor.
@@ -72,22 +85,24 @@
*/
public static void addPackageInfo(File path, String classInfo, String pack) throws IOException {
- if (pack.contains(UtilConstants.ORG)) {
- String[] strArray = pack.split(UtilConstants.ORG);
- pack = UtilConstants.ORG + strArray[1];
+ if (pack.contains(ORG)) {
+ String[] strArray = pack.split(ORG);
+ pack = ORG + strArray[1];
}
try {
- File packageInfo = new File(path + File.separator + "package-info.java");
+ File packageInfo = new File(path + SLASH + "package-info.java");
packageInfo.createNewFile();
- FileWriter fileWriter = null;
- BufferedWriter bufferedWriter = null;
- fileWriter = new FileWriter(packageInfo);
- bufferedWriter = new BufferedWriter(fileWriter);
+
+ FileWriter fileWriter = new FileWriter(packageInfo);
+ BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
+
bufferedWriter.write(CopyrightHeader.getCopyrightHeader());
- bufferedWriter.write(JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.PACKAGE_INFO, classInfo, false));
- bufferedWriter.write(UtilConstants.PACKAGE + UtilConstants.SPACE + pack + UtilConstants.SEMI_COLAN);
+ bufferedWriter.write(JavaDocGen.getJavaDoc(PACKAGE_INFO, classInfo, false));
+ bufferedWriter.write(PACKAGE + SPACE + pack + SEMI_COLAN);
+
bufferedWriter.close();
+ fileWriter.close();
} catch (IOException e) {
throw new IOException("Exception occured while creating package info file.");
}
@@ -97,15 +112,16 @@
* Cleans the generated directory if already exist in source folder.
*
* @param dir generated directory in previous build
+ * @throws IOException when failed to delete directory
*/
- public static void clean(String dir) {
+ public static void clean(String dir) throws IOException {
File generatedDirectory = new File(dir);
if (generatedDirectory.exists()) {
try {
- FileUtils.deleteDirectory(generatedDirectory);
+ deleteDirectory(generatedDirectory);
} catch (IOException e) {
- log.info("Failed to delete the generated files in " + generatedDirectory + " directory");
+ throw new IOException("Failed to delete the generated files in " + generatedDirectory + " directory");
}
}
}
@@ -147,18 +163,17 @@
*/
public static String partString(String partString) {
- String[] strArray = partString.split(UtilConstants.COMMA);
- String newString = "";
+ String[] strArray = partString.split(COMMA);
+ String newString = EMPTY_STRING;
for (int i = 0; i < strArray.length; i++) {
if (i % 4 != 0 || i == 0) {
- newString = newString + strArray[i] + UtilConstants.COMMA;
+ newString = newString + strArray[i] + COMMA;
} else {
- newString = newString + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION
- + strArray[i]
- + UtilConstants.COMMA;
+ newString = newString + NEW_LINE + TWELVE_SPACE_INDENTATION
+ + strArray[i] + COMMA;
}
}
- return trimAtLast(newString, UtilConstants.COMMA);
+ return trimAtLast(newString, COMMA);
}
/**
@@ -183,13 +198,13 @@
public static String getDirectory(String baseCodeGenPath, String pathOfJavaPkg) {
if (pathOfJavaPkg.charAt(pathOfJavaPkg.length() - 1) == File.separatorChar) {
- pathOfJavaPkg = trimAtLast(pathOfJavaPkg, UtilConstants.SLASH);
+ pathOfJavaPkg = trimAtLast(pathOfJavaPkg, SLASH);
}
- String[] strArray = pathOfJavaPkg.split(UtilConstants.SLASH);
- if (strArray[0].equals(UtilConstants.EMPTY_STRING)) {
+ String[] strArray = pathOfJavaPkg.split(SLASH);
+ if (strArray[0].equals(EMPTY_STRING)) {
return pathOfJavaPkg;
} else {
- return baseCodeGenPath + File.separator + pathOfJavaPkg;
+ return baseCodeGenPath + SLASH + pathOfJavaPkg;
}
}
@@ -212,8 +227,7 @@
* @param yangFiles list of YANG files
* @param outputDir project's output directory
* @param project maven project
- * @throws IOException when fails to copy files to destination resource
- * directory
+ * @throws IOException when fails to copy files to destination resource directory
*/
public static void copyYangFilesToTarget(List<String> yangFiles, String outputDir, MavenProject project)
throws IOException {
@@ -226,11 +240,11 @@
for (File file : files) {
Files.copy(file.toPath(),
- new File(path + file.getName()).toPath(),
+ (new File(path + file.getName())).toPath(),
StandardCopyOption.REPLACE_EXISTING);
}
Resource rsc = new Resource();
- rsc.setDirectory(outputDir + UtilConstants.SLASH + UtilConstants.TEMP + UtilConstants.SLASH);
+ rsc.setDirectory(outputDir + SLASH + TEMP + SLASH);
project.addResource(rsc);
}
@@ -248,4 +262,58 @@
}
return files;
}
+
+ /**
+ * Merge the temp java files to main java files.
+ *
+ * @param appendFile temp file
+ * @param srcFile main file
+ * @throws IOException when fails to append contents
+ */
+ public static void mergeJavaFiles(File appendFile, File srcFile) throws IOException {
+
+ try {
+ appendFileContents(appendFile, srcFile);
+ } catch (IOException e) {
+ throw new IOException("Failed to append " + appendFile + " in " + srcFile);
+ }
+ }
+
+ /**
+ * Insert data in the generated file.
+ *
+ * @param file file in which need to be inserted
+ * @param data data which need to be inserted
+ * @throws IOException when fails to insert into file
+ */
+ public static void insertDataIntoJavaFile(File file, String data) throws IOException {
+
+ try {
+ updateFileHandle(file, data, false);
+ } catch (IOException e) {
+ throw new IOException("Failed to insert in " + file + "file");
+ }
+ }
+
+ /**
+ * Convert directory path in java package format.
+ *
+ * @param path directory path
+ * @return java package
+ */
+ public static String convertPathToPkg(String path) {
+
+ return path.replace(SLASH, PERIOD);
+ }
+
+ /**
+ * Convert java package in directory path format.
+ *
+ * @param pkg java package
+ * @return directory path
+ */
+ public static String convertPkgToPath(String pkg) {
+
+ return pkg.replace(PERIOD, SLASH);
+ }
}