[ONOS-4303, ONOS-4508, ONOS-4509, ONOS-4510, ONOS-4351]notification,rpc,union,sub-module,augment
Change-Id: Ibeed9ff965c13fd66743c1080cb1350d93a3a435
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 c259a7f..1dced05 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,17 +23,24 @@
import java.io.IOException;
import java.io.PrintWriter;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
+
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getJavaPackageFromPackagePath;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getParentNodeInGenCode;
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.PACKAGE_INFO_JAVADOC_OF_CHILD;
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.createDirectories;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
/**
* Represents utility to handle file system operations.
@@ -61,15 +68,29 @@
/**
* Creates a package structure with package info java file if not present.
*
- * @param pkg java package string
- * @param pkgInfo description of package
+ * @param yangNode YANG node for which code is being generated
* @throws IOException any IO exception
*/
- public static void createPackage(String pkg, String pkgInfo) throws IOException {
- if (!doesPackageExist(pkg)) {
+ public static void createPackage(YangNode yangNode)
+ throws IOException {
+
+ YangNode parent = getParentNodeInGenCode(yangNode);
+ JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) yangNode).getJavaFileInfo();
+ String absolutePath = getAbsolutePackagePath(javaFileInfo.getBaseCodeGenPath(),
+ javaFileInfo.getPackageFilePath());
+
+ String pkgInfo;
+ if (parent != null) {
+ pkgInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo().getJavaName()
+ + PACKAGE_INFO_JAVADOC_OF_CHILD;
+ } else {
+ pkgInfo = javaFileInfo.getJavaName();
+ }
+
+ if (!doesPackageExist(absolutePath)) {
try {
- File pack = createDirectories(pkg);
- addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg));
+ File pack = createDirectories(absolutePath);
+ addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(absolutePath));
} catch (IOException e) {
throw new IOException("failed to create package-info file");
}
@@ -81,12 +102,13 @@
* file.
*
* @param toAppend destination file in which the contents of source file is
- * appended
+ * appended
* @param srcFile source file from which data is read and added to to append
- * file
+ * file
* @throws IOException any IO errors
*/
- public static void appendFileContents(File toAppend, File srcFile) throws IOException {
+ public static void appendFileContents(File toAppend, File srcFile)
+ throws IOException {
updateFileHandle(srcFile, NEW_LINE + readAppendFile(toAppend.toString(), FOUR_SPACE_INDENTATION), false);
}
@@ -98,7 +120,8 @@
* @return string of file
* @throws IOException when fails to convert to string
*/
- public static String readAppendFile(String toAppend, String spaces) throws IOException {
+ public static String readAppendFile(String toAppend, String spaces)
+ throws IOException {
FileReader fileReader = new FileReader(toAppend);
BufferedReader bufferReader = new BufferedReader(fileReader);
try {
@@ -131,9 +154,10 @@
* @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
+ * 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 {
+ public static void updateFileHandle(File inputFile, String contentTobeAdded, boolean isClose)
+ throws IOException {
FileWriter fileWriter = new FileWriter(inputFile, true);
PrintWriter outputPrintWriter = new PrintWriter(fileWriter, true);
if (!isClose) {