[ONOS-4636]YANG Grouping linking bug fix + YANG Code review comment fix
Change-Id: I68ee8dd08266a02593e217cef1a9bb010037d673
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
index 9e7cc5c..19ed11d 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
@@ -16,6 +16,8 @@
package org.onosproject.yangutils.translator.tojava.utils;
+import java.util.Stack;
+
import org.onosproject.yangutils.datamodel.YangDataTypes;
import org.onosproject.yangutils.datamodel.YangDerivedInfo;
import org.onosproject.yangutils.datamodel.YangEnumeration;
@@ -26,6 +28,7 @@
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
+import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
@@ -34,6 +37,8 @@
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE;
@@ -119,7 +124,7 @@
* Returns from string method parsed string.
*
* @param targetDataType target data type
- * @param yangType YANG type
+ * @param yangType YANG type
* @return parsed string
*/
public static String getParseFromStringMethod(String targetDataType, YangType<?> yangType) {
@@ -163,8 +168,8 @@
/**
* Returns java import class.
*
- * @param yangType YANG type
- * @param isListAttr if the attribute need to be a list
+ * @param yangType YANG type
+ * @param isListAttr if the attribute need to be a list
* @param pluginConfig plugin configurations
* @return java import class
*/
@@ -199,8 +204,8 @@
return BOOLEAN_WRAPPER;
case ENUMERATION:
return getCapitalCase(
- getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(),
- pluginConfig));
+ getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(),
+ pluginConfig));
case BITS:
return YANG_BITS_CLASS;
case BINARY:
@@ -215,13 +220,13 @@
return BOOLEAN_WRAPPER;
case UNION:
return getCapitalCase(getCamelCase(((YangJavaUnion) yangType.getDataTypeExtendedInfo()).getName(),
- pluginConfig));
+ pluginConfig));
case INSTANCE_IDENTIFIER:
//TODO:INSTANCE_IDENTIFIER
break;
case DERIVED:
- return getCapitalCase(
- getCamelCase(yangType.getDataTypeName(), pluginConfig));
+ return getCapitalCase(
+ getCamelCase(yangType.getDataTypeName(), pluginConfig));
default:
throw new TranslatorException("given data type is not supported.");
}
@@ -235,8 +240,8 @@
return STRING_DATA_TYPE;
case ENUMERATION:
return getCapitalCase(
- getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(),
- pluginConfig));
+ getCamelCase(((YangJavaEnumeration) yangType.getDataTypeExtendedInfo()).getName(),
+ pluginConfig));
case BITS:
return YANG_BITS_CLASS;
case BINARY:
@@ -251,13 +256,13 @@
return BOOLEAN_DATA_TYPE;
case UNION:
return getCapitalCase(getCamelCase(((YangJavaUnion) yangType.getDataTypeExtendedInfo()).getName(),
- pluginConfig));
+ pluginConfig));
case INSTANCE_IDENTIFIER:
//TODO:INSTANCE_IDENTIFIER
break;
case DERIVED:
- return getCapitalCase(
- getCamelCase(yangType.getDataTypeName(), pluginConfig));
+ return getCapitalCase(
+ getCamelCase(yangType.getDataTypeName(), pluginConfig));
default:
return null;
}
@@ -268,8 +273,8 @@
/**
* Returns java import package.
*
- * @param yangType YANG type
- * @param isListAttr if the attribute is of list type
+ * @param yangType YANG type
+ * @param isListAttr if the attribute is of list type
* @param conflictResolver object of YANG to java naming conflict util
* @return java import package
*/
@@ -352,7 +357,7 @@
/**
* Returns java package for typedef node.
*
- * @param type YANG type
+ * @param type YANG type
* @param conflictResolver object of YANG to java naming conflict util
* @return java package for typedef node
*/
@@ -376,7 +381,7 @@
/**
* Returns java package for union node.
*
- * @param type YANG type
+ * @param type YANG type
* @param conflictResolver object of YANG to java naming conflict util
* @return java package for union node
*/
@@ -396,7 +401,7 @@
/**
* Returns YANG enumeration's java package.
*
- * @param type YANG type
+ * @param type YANG type
* @param conflictResolver object of YANG to java naming conflict util
* @return YANG enumeration's java package
*/
@@ -415,29 +420,87 @@
/**
* Returns package from parent node.
*
- * @param parent parent YANG node
+ * @param parent parent YANG node
* @param conflictResolver object of YANG to java naming conflict util
* @return java package from parent node
*/
- private static String getPackageFromParent(YangNode parent, YangToJavaNamingConflictUtil conflictResolver) {
+ private static String getPackageFromParent(YangNode parent,
+ YangToJavaNamingConflictUtil conflictResolver) {
if (!(parent instanceof JavaFileInfoContainer)) {
throw new TranslatorException("invalid child node is being processed.");
}
JavaFileInfo parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
if (parentInfo.getPackage() == null) {
- if (parent instanceof YangJavaModule) {
- YangJavaModule module = (YangJavaModule) parent;
- String modulePkg = getRootPackage(module.getVersion(), module.getNameSpace().getUri(), module
- .getRevision().getRevDate(), conflictResolver);
- return modulePkg + PERIOD + getCamelCase(module.getName(), conflictResolver).toLowerCase();
- } else if (parent instanceof YangJavaSubModule) {
- YangJavaSubModule submodule = (YangJavaSubModule) parent;
- String subModulePkg = getRootPackage(submodule.getVersion(),
- submodule.getNameSpaceFromModule(submodule.getBelongsTo()),
- submodule.getRevision().getRevDate(), conflictResolver);
- return subModulePkg + PERIOD + getCamelCase(submodule.getName(), conflictResolver).toLowerCase();
- }
+ updateJavaFileInfo(parent, conflictResolver);
}
return parentInfo.getPackage() + PERIOD + parentInfo.getJavaName().toLowerCase();
}
+
+ /**
+ * Update the referred data model nodes java file info, this will be called,
+ * when the linked node is yet to translate. Then resolve until the parent hierarchy.
+ *
+ * @param yangNode node whose java info needs to be updated
+ * @param conflictResolver yang plugin config
+ */
+ public static void updateJavaFileInfo(YangNode yangNode,
+ YangToJavaNamingConflictUtil conflictResolver) {
+ Stack<YangNode> nodesToUpdatePackage = new Stack<YangNode>();
+
+ /*
+ * Add the nodes to be updated for package info in a stack.
+ */
+ while (yangNode != null
+ && ((JavaFileInfoContainer) yangNode)
+ .getJavaFileInfo().getPackage() == null) {
+ nodesToUpdatePackage.push(yangNode);
+ yangNode = yangNode.getParent();
+ }
+
+ /*
+ * If the package is not updated till root node, then root package needs to
+ * be updated.
+ */
+ if (yangNode == null) {
+ yangNode = nodesToUpdatePackage.pop();
+ String pkg;
+ if (yangNode instanceof YangJavaModule) {
+ YangJavaModule module = (YangJavaModule) yangNode;
+ pkg = getRootPackage(module.getVersion(), module.getNameSpace().getUri(), module
+ .getRevision().getRevDate(), conflictResolver);
+ } else if (yangNode instanceof YangJavaSubModule) {
+ YangJavaSubModule submodule = (YangJavaSubModule) yangNode;
+ pkg = getRootPackage(submodule.getVersion(),
+ submodule.getNameSpaceFromModule(submodule.getBelongsTo()),
+ submodule.getRevision().getRevDate(), conflictResolver);
+ } else {
+ throw new TranslatorException("Invalid root node of data model tree");
+ }
+
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .setJavaName(getCamelCase(yangNode.getName(), conflictResolver));
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .setPackage(pkg);
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .setPackageFilePath(getPackageDirPathFromJavaJPackage(
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .getPackage()));
+ }
+
+ /**
+ * Parent of the node in stack is updated with java info,
+ * all the nodes can be popped and updated
+ */
+ while (nodesToUpdatePackage.size() != 0) {
+ yangNode = nodesToUpdatePackage.pop();
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .setJavaName(getCamelCase(yangNode.getName(), conflictResolver));
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .setPackage(getCurNodePackage(yangNode));
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .setPackageFilePath(getPackageDirPathFromJavaJPackage(
+ ((JavaCodeGeneratorInfo) yangNode).getJavaFileInfo()
+ .getPackage()));
+ }
+ }
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java
index 3ee83fd..36986b8 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java
@@ -27,6 +27,7 @@
import org.onosproject.yangutils.translator.tojava.JavaImportData;
import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.getTempJavaFragement;
/**
@@ -58,7 +59,7 @@
/**
* Sets extends list.
*
- * @param extendsList list of classes need to be extended
+ * @param extendedClass map of classes need to be extended
*/
private void setExtendedClassStore(Map<JavaQualifiedTypeInfo, Boolean> extendedClass) {
this.extendedClassStore = extendedClass;
@@ -73,14 +74,13 @@
public void addToExtendsList(JavaQualifiedTypeInfo info, YangNode node) {
JavaFileInfo fileInfo = ((JavaFileInfoContainer) node).getJavaFileInfo();
- if (!fileInfo.getPackage().equals(info.getPkgInfo())) {
- JavaImportData importData = getTempJavaFragement(node).getJavaImportData();
- importData.addImportInfo(info);
+ JavaImportData importData = getTempJavaFragement(node).getJavaImportData();
+ boolean qualified = importData.addImportInfo(info,
+ getCapitalCase(fileInfo.getJavaName()), fileInfo.getPackage());
/*true means import should be added*/
- getExtendedClassStore().put(info, true);
- }
- getExtendedClassStore().put(info, false);
+ getExtendedClassStore().put(info, qualified);
+
addToExtendsList(info);
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
index 0b951db..0ecc49e 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
@@ -83,7 +83,6 @@
import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
-import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILDER_CLASS;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILDER_INTERFACE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_CLASS;
@@ -94,6 +93,7 @@
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.INTERFACE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.RPC_INTERFACE;
import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.RPC_MANAGER;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.parsePkg;
@@ -111,10 +111,10 @@
/**
* Returns a file object for generated file.
*
- * @param filePath file package path
- * @param fileName file name
+ * @param fileName file name
+ * @param filePath file package path
* @param extension file extension
- * @param handle cached file handle
+ * @param handle cached file handle
* @return file object
*/
public static File getFileObject(String filePath, String fileName, String extension, JavaFileInfo handle) {
@@ -125,7 +125,7 @@
/**
* Returns data stored in temporary files.
*
- * @param generatedTempFiles temporary file types
+ * @param generatedTempFiles temporary file types
* @param tempJavaFragmentFiles temp java fragment files
* @return data stored in temporary files
* @throws IOException when failed to get the data from temporary file handle
@@ -253,11 +253,11 @@
/**
* Initiates generation of file based on generated file type.
*
- * @param file generated file
- * @param className generated file class name
- * @param genType generated file type
- * @param imports imports for the file
- * @param pkg generated file package
+ * @param file generated file
+ * @param className generated file class name
+ * @param genType generated file type
+ * @param imports imports for the file
+ * @param pkg generated file package
* @param pluginConfig plugin configurations
* @throws IOException when fails to generate a file
*/
@@ -276,17 +276,22 @@
/**
* Initiates generation of file based on generated file type.
*
- * @param file generated file
- * @param genType generated file type
- * @param imports imports for the file
- * @param curNode current YANG node
+ * @param file generated file
+ * @param genType generated file type
+ * @param imports imports for the file
+ * @param curNode current YANG node
* @param className class name
* @throws IOException when fails to generate a file
*/
public static void initiateJavaFileGeneration(File file, int genType, List<String> imports,
- YangNode curNode, String className) throws IOException {
+ YangNode curNode, String className)
+ throws IOException {
try {
+ if (file.exists()) {
+ throw new IOException(file.getName() + " is reused due to YANG naming");
+ }
+
file.createNewFile();
appendContents(file, genType, imports, curNode, className);
} catch (IOException e) {
@@ -297,15 +302,16 @@
/**
* Appends all the contents into a generated java file.
*
- * @param file generated file
- * @param genType generated file type
+ * @param file generated file
+ * @param genType generated file type
* @param importsList list of java imports
- * @param curNode current YANG node
- * @param className class name
+ * @param curNode current YANG node
+ * @param className class name
* @throws IOException
*/
private static void appendContents(File file, int genType, List<String> importsList, YangNode curNode,
- String className) throws IOException {
+ String className)
+ throws IOException {
JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
@@ -321,39 +327,39 @@
pkgString = parsePackageString(path, importsList);
}
switch (genType) {
- case INTERFACE_MASK:
- appendHeaderContents(file, pkgString, importsList);
- write(file, genType, INTERFACE, curNode, className);
- break;
- case GENERATE_SERVICE_AND_MANAGER:
- appendHeaderContents(file, pkgString, importsList);
- write(file, genType, RPC_INTERFACE, curNode, className);
- break;
- case GENERATE_EVENT_CLASS:
- appendHeaderContents(file, pkgString, importsList);
- write(file, genType, EVENT, curNode, className);
- break;
- case GENERATE_EVENT_LISTENER_INTERFACE:
- appendHeaderContents(file, pkgString, importsList);
- write(file, genType, EVENT_LISTENER, curNode, className);
- break;
- case GENERATE_EVENT_SUBJECT_CLASS:
- appendHeaderContents(file, pkgString, importsList);
- write(file, genType, EVENT_SUBJECT_CLASS, curNode, className);
- break;
- default:
- break;
+ case INTERFACE_MASK:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, genType, INTERFACE, curNode, className);
+ break;
+ case GENERATE_SERVICE_AND_MANAGER:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, genType, RPC_INTERFACE, curNode, className);
+ break;
+ case GENERATE_EVENT_CLASS:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, genType, EVENT, curNode, className);
+ break;
+ case GENERATE_EVENT_LISTENER_INTERFACE:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, genType, EVENT_LISTENER, curNode, className);
+ break;
+ case GENERATE_EVENT_SUBJECT_CLASS:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, genType, EVENT_SUBJECT_CLASS, curNode, className);
+ break;
+ default:
+ break;
}
}
/**
* Appends all the contents into a generated java file.
*
- * @param file generated file
- * @param fileName generated file name
- * @param genType generated file type
- * @param importsList list of java imports
- * @param pkg generated file package
+ * @param file generated file
+ * @param fileName generated file name
+ * @param genType generated file type
+ * @param importsList list of java imports
+ * @param pkg generated file package
* @param pluginConfig plugin configurations
* @throws IOException when fails to append contents
*/
@@ -364,37 +370,37 @@
String pkgString = parsePackageString(pkg, importsList);
switch (genType) {
- case IMPL_CLASS_MASK:
- write(file, fileName, genType, IMPL_CLASS, pluginConfig);
- break;
- case BUILDER_INTERFACE_MASK:
- write(file, fileName, genType, BUILDER_INTERFACE, pluginConfig);
- break;
- case GENERATE_TYPEDEF_CLASS:
- appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, IMPL_CLASS, pluginConfig);
- break;
- case BUILDER_CLASS_MASK:
- appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, BUILDER_CLASS, pluginConfig);
- break;
- case GENERATE_UNION_CLASS:
- appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, IMPL_CLASS, pluginConfig);
- break;
- case GENERATE_ENUM_CLASS:
- appendHeaderContents(file, pkgString, importsList);
- write(file, fileName, genType, ENUM_CLASS, pluginConfig);
- break;
- default:
- break;
+ case IMPL_CLASS_MASK:
+ write(file, fileName, genType, IMPL_CLASS, pluginConfig);
+ break;
+ case BUILDER_INTERFACE_MASK:
+ write(file, fileName, genType, BUILDER_INTERFACE, pluginConfig);
+ break;
+ case GENERATE_TYPEDEF_CLASS:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, fileName, genType, IMPL_CLASS, pluginConfig);
+ break;
+ case BUILDER_CLASS_MASK:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, fileName, genType, BUILDER_CLASS, pluginConfig);
+ break;
+ case GENERATE_UNION_CLASS:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, fileName, genType, IMPL_CLASS, pluginConfig);
+ break;
+ case GENERATE_ENUM_CLASS:
+ appendHeaderContents(file, pkgString, importsList);
+ write(file, fileName, genType, ENUM_CLASS, pluginConfig);
+ break;
+ default:
+ break;
}
}
/**
* Removes base directory path from package and generates package string for file.
*
- * @param javaPkg generated java package
+ * @param javaPkg generated java package
* @param importsList list of imports
* @return package string
*/
@@ -416,8 +422,8 @@
* Appends other contents to interface, builder and typedef classes.
* for example : ONOS copyright, imports and package.
*
- * @param file generated file
- * @param pkg generated package
+ * @param file generated file
+ * @param pkg generated package
* @param importsList list of imports
* @throws IOException when fails to append contents
*/
@@ -443,11 +449,11 @@
/**
* Writes data to the specific generated file.
*
- * @param file generated file
- * @param genType generated file type
+ * @param file generated file
+ * @param genType generated file type
* @param javaDocType java doc type
- * @param curNode current YANG node
- * @param fileName file name
+ * @param curNode current YANG node
+ * @param fileName file name
* @throws IOException when fails to write into a file
*/
private static void write(File file, int genType, JavaDocType javaDocType, YangNode curNode, String fileName)
@@ -470,10 +476,10 @@
/**
* Writes data to the specific generated file.
*
- * @param file generated file
- * @param fileName file name
- * @param genType generated file type
- * @param javaDocType java doc type
+ * @param file generated file
+ * @param fileName file name
+ * @param genType generated file type
+ * @param javaDocType java doc type
* @param pluginConfig plugin configurations
* @throws IOException
*/
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
index 617ac99..f70ec53 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
@@ -29,12 +29,7 @@
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaInput;
import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaOutput;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
-
-import static java.util.Collections.sort;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
@@ -69,6 +64,8 @@
import static org.onosproject.yangutils.utils.UtilConstants.TYPE;
import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.updateFileHandle;
+import static java.util.Collections.sort;
+
/**
* Represents utilities for temporary java code fragments.
*/
@@ -83,8 +80,8 @@
/**
* Adds import for AugmentationHolders class.
*
- * @param curNode current YANG node
- * @param imports list of imports
+ * @param curNode current YANG node
+ * @param imports list of imports
* @param operation add or delete import
*/
public static void addAugmentationHoldersImport(YangNode curNode, List<String> imports, boolean operation) {
@@ -95,8 +92,8 @@
/**
* Adds import for AugmentedInfo class.
*
- * @param curNode current YANG node
- * @param imports list of imports
+ * @param curNode current YANG node
+ * @param imports list of imports
* @param operation add or delete import
*/
public static void addAugmentedInfoImport(YangNode curNode, List<String> imports, boolean operation) {
@@ -126,8 +123,8 @@
/**
* Updated imports with augmented nodes import.
*
- * @param curNode current YANG node
- * @param imports list of imports
+ * @param curNode current YANG node
+ * @param imports list of imports
* @param operation to add or to delete
*/
public static void addAugmentedNodesImport(YangNode curNode, List<String> imports, boolean operation) {
@@ -156,7 +153,7 @@
/**
* Returns imports for augmented node.
*
- * @param parent parent YANG node
+ * @param parent parent YANG node
* @param targetNodes list of target nodes
* @param isImplClass if impl class's import required
* @return imports for augmented node
@@ -204,8 +201,8 @@
/**
* Adds import for array list.
*
- * @param curNode current YANG node
- * @param imports list of imports
+ * @param curNode current YANG node
+ * @param imports list of imports
* @param operation add or delete import
*/
public static void addArrayListImport(YangNode curNode, List<String> imports, boolean operation) {
@@ -224,8 +221,8 @@
/**
* Adds listener's imports.
*
- * @param curNode currentYangNode.
- * @param imports import list
+ * @param curNode currentYangNode.
+ * @param imports import list
* @param operation add or remove
* @param classInfo class info to be added to import list
*/
@@ -244,7 +241,7 @@
/**
* Adds annotations imports.
*
- * @param imports list if imports
+ * @param imports list if imports
* @param operation to add or to delete
*/
public static void addAnnotationsImports(List<String> imports, boolean operation) {
@@ -269,7 +266,7 @@
/**
* Performs given operations on import list.
*
- * @param imports list of imports
+ * @param imports list of imports
* @param curImport current import
* @param operation add or remove
* @return import list
@@ -314,7 +311,7 @@
/**
* Closes the file handle for temporary file.
*
- * @param file file to be closed
+ * @param file file to be closed
* @param toBeDeleted flag to indicate if file needs to be deleted
* @throws IOException when failed to close the file handle
*/
@@ -330,33 +327,6 @@
}
/**
- * Detects collision between parent and child node which have same name.
- * When parent and child node both have the same name in that case child node should be used with
- * qualified name.
- *
- * @param curNode current YANG node
- * @param qualifiedTypeInfo current node's qualified info
- * @return true if collision is detected
- */
- public static boolean detectCollisionBwParentAndChildForImport(YangNode curNode,
- JavaQualifiedTypeInfo qualifiedTypeInfo) {
-
- YangNode parent = curNode.getParent();
- if (parent instanceof YangJavaModule
- || parent instanceof YangJavaSubModule
- || parent instanceof YangJavaInput
- || parent instanceof YangJavaOutput) {
- return false;
- }
- String parentsClassInfo = getCapitalCase(((JavaFileInfoContainer) parent).getJavaFileInfo().getJavaName());
- String childsClassInfo = qualifiedTypeInfo.getClassInfo();
- if (childsClassInfo.equals(parentsClassInfo)) {
- return true;
- }
- return false;
- }
-
- /**
* Returns sorted import list.
*
* @param imports import list
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
index 8e02082..3f378c7 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
@@ -19,8 +19,6 @@
import java.io.IOException;
import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
-import org.onosproject.yangutils.datamodel.YangAugment;
-import org.onosproject.yangutils.datamodel.YangAugmentationHolder;
import org.onosproject.yangutils.datamodel.YangCase;
import org.onosproject.yangutils.datamodel.YangChoice;
import org.onosproject.yangutils.datamodel.YangLeavesHolder;
@@ -45,9 +43,6 @@
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
-import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTATION_HOLDER;
-import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
-import static org.onosproject.yangutils.utils.UtilConstants.PROVIDED_AUGMENTATION_CLASS_IMPORT_PKG;
/**
* Represents utility class for YANG java model.
@@ -64,7 +59,7 @@
* Updates YANG java file package information.
*
* @param javaCodeGeneratorInfo YANG java file info node
- * @param yangPluginConfig YANG plugin config
+ * @param yangPluginConfig YANG plugin config
* @throws IOException IO operations fails
*/
public static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
@@ -85,7 +80,7 @@
* Updates YANG java file package information for specified package.
*
* @param javaCodeGeneratorInfo YANG java file info node
- * @param yangPlugin YANG plugin config
+ * @param yangPlugin YANG plugin config
* @throws IOException IO operations fails
*/
private static void updatePackageInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo, YangPluginConfig yangPlugin,
@@ -128,7 +123,7 @@
*/
javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
.getServiceTempFiles().addCurNodeLeavesInfoToTempFiles(
- (YangNode) javaCodeGeneratorInfo, yangPluginConfig);
+ (YangNode) javaCodeGeneratorInfo, yangPluginConfig);
if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaModule) {
if (!((YangJavaModule) javaCodeGeneratorInfo).getNotificationNodes().isEmpty()) {
updateNotificaitonNodeInfo(javaCodeGeneratorInfo, yangPluginConfig);
@@ -151,7 +146,7 @@
*/
javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
.getBeanTempFiles().addCurNodeLeavesInfoToTempFiles(
- (YangNode) javaCodeGeneratorInfo, yangPluginConfig);
+ (YangNode) javaCodeGeneratorInfo, yangPluginConfig);
} else if (javaCodeGeneratorInfo instanceof YangTypeHolder) {
/*
* Typedef
@@ -194,11 +189,12 @@
* Updates notification node info in service temporary file.
*
* @param javaCodeGeneratorInfo java code generator info
- * @param yangPluginConfig plugin configurations
+ * @param yangPluginConfig plugin configurations
* @throws IOException when fails to do IO operations
*/
private static void updateNotificaitonNodeInfo(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
- YangPluginConfig yangPluginConfig) throws IOException {
+ YangPluginConfig yangPluginConfig)
+ throws IOException {
if ((YangNode) javaCodeGeneratorInfo instanceof YangJavaModule) {
for (YangNode notificaiton : ((YangJavaModule) javaCodeGeneratorInfo).getNotificationNodes()) {
javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
@@ -220,8 +216,8 @@
* Generates code for the current ata model node and adds itself as an attribute in the parent.
*
* @param javaCodeGeneratorInfo YANG java file info node
- * @param yangPlugin YANG plugin config
- * @param isMultiInstance flag to indicate whether it's a list
+ * @param yangPlugin YANG plugin config
+ * @param isMultiInstance flag to indicate whether it's a list
* @throws IOException IO operations fails
*/
public static void generateCodeAndUpdateInParent(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
@@ -246,7 +242,7 @@
* Generates code for the current data model node and adds support for it to be augmented.
*
* @param javaCodeGeneratorInfo YANG java file info node
- * @param yangPlugin YANG plugin config
+ * @param yangPlugin YANG plugin config
* @throws IOException IO operations fails
*/
public static void generateCodeOfAugmentableNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
@@ -259,8 +255,9 @@
generateCodeOfNode(javaCodeGeneratorInfo, yangPlugin);
/*
+ TODO: Need to use this, when augmentation is added in YMS
* For augmentation of nodes.
- */
+
if (javaCodeGeneratorInfo instanceof YangAugmentationHolder) {
JavaQualifiedTypeInfo augmentationHoldersInfo = new JavaQualifiedTypeInfo();
augmentationHoldersInfo.setClassInfo(AUGMENTATION_HOLDER);
@@ -276,7 +273,7 @@
.addToExtendsList(augmentedInfo, (YangNode) javaCodeGeneratorInfo);
}
-
+ */
if (javaCodeGeneratorInfo instanceof YangCase) {
YangNode parent = ((YangCase) javaCodeGeneratorInfo).getParent();
JavaQualifiedTypeInfo parentsInfo = new JavaQualifiedTypeInfo();
@@ -297,7 +294,7 @@
* Generates code for the current data model node.
*
* @param javaCodeGeneratorInfo YANG java file info node
- * @param yangPluginConfig YANG plugin config
+ * @param yangPluginConfig YANG plugin config
* @throws IOException IO operations fails
*/
public static void generateCodeOfNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
@@ -314,8 +311,8 @@
* Generates code for the root module/sub-module node.
*
* @param javaCodeGeneratorInfo YANG java file info node
- * @param yangPluginConfig YANG plugin config
- * @param rootPkg package of the root node
+ * @param yangPluginConfig YANG plugin config
+ * @param rootPkg package of the root node
* @throws IOException IO operations fails
*/
public static void generateCodeOfRootNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo,