[ONOS-5482][ONOS-5275] Yms Operation requirement Implementation in onos-yang-tools

Change-Id: I463ed105f85ca65a61ff251e5ca062903d465551
diff --git a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
index 2d70219..00d7a19 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
@@ -532,7 +532,7 @@
      * @param isList true if list, false otherwise
      * @return import class
      */
-    private static String getLeafRefImpClass(
+    public static String getLeafRefImpClass(
             YangType type, YangToJavaNamingConflictUtil cnfg, boolean isList) {
         YangType<?> rt = getReferredTypeFromLeafref(type);
         return rt == null ? OBJECT_STRING : getJavaImportClass(rt, isList,
diff --git a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java
index 1607b9f..ca964f1 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugmentTranslator.java
@@ -15,8 +15,6 @@
  */
 package org.onosproject.yangutils.translator.tojava.javamodel;
 
-import java.io.IOException;
-
 import org.onosproject.yangutils.datamodel.YangChoice;
 import org.onosproject.yangutils.datamodel.javadatamodel.YangJavaAugment;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
@@ -26,8 +24,10 @@
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
 import org.onosproject.yangutils.utils.io.YangPluginConfig;
 
+import java.io.IOException;
+
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfAugmentableNode;
+import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfNode;
 
 /**
  * Represents augment information extended to support java code generation.
@@ -109,7 +109,7 @@
     @Override
     public void generateCodeEntry(YangPluginConfig yangPlugin) throws TranslatorException {
         try {
-            generateCodeOfAugmentableNode(this, yangPlugin);
+            generateCodeOfNode(this, yangPlugin);
         } catch (IOException e) {
             throw new TranslatorException("Failed to generate code for augmentable node " +
                     getName() + " in " +
diff --git a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java
index e0b0dad..668b1e9 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModuleTranslator.java
@@ -34,6 +34,7 @@
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
 import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfRootNode;
+import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateInterfaceFileForNonDataNodes;
 import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isRootNodesCodeGenRequired;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
 import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_ENTRY;
@@ -168,7 +169,9 @@
                         GENERATE_ALL_EVENT_CLASS_MASK, this);
             }
 
-            if (isRootNodesCodeGenRequired(this)) {
+            if (!isRootNodesCodeGenRequired(this)) {
+                generateInterfaceFileForNonDataNodes(this);
+            } else {
                 getTempJavaCodeFragmentFiles()
                         .generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
                 if (getJavaFileInfo().getPluginConfig()
diff --git a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java
index 20fa8d2..62f2962 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModuleTranslator.java
@@ -35,6 +35,7 @@
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
 import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateCodeOfRootNode;
+import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.generateInterfaceFileForNonDataNodes;
 import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.isRootNodesCodeGenRequired;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
 import static org.onosproject.yangutils.translator.tojava.utils.TranslatorErrorType.FAIL_AT_ENTRY;
@@ -180,7 +181,9 @@
                 getTempJavaCodeFragmentFiles().generateJavaFile(
                         GENERATE_ALL_EVENT_CLASS_MASK, this);
             }
-            if (isRootNodesCodeGenRequired(this)) {
+            if (!isRootNodesCodeGenRequired(this)) {
+                generateInterfaceFileForNonDataNodes(this);
+            } else {
                 getTempJavaCodeFragmentFiles()
                         .generateJavaFile(GENERATE_INTERFACE_WITH_BUILDER, this);
                 if (getJavaFileInfo().getPluginConfig()