[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/utils/StringGenerator.java b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/StringGenerator.java
index c0d05b0..9dfbf80 100644
--- a/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/StringGenerator.java
+++ b/generator/src/main/java/org/onosproject/yangutils/translator/tojava/utils/StringGenerator.java
@@ -76,7 +76,7 @@
 import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
 import static org.onosproject.yangutils.utils.UtilConstants.GET;
-import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_METHOD_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.GOOGLE_MORE_OBJECT_METHOD_STATIC_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.IF;
 import static org.onosproject.yangutils.utils.UtilConstants.IMPLEMENTS;
 import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
@@ -90,7 +90,6 @@
 import static org.onosproject.yangutils.utils.UtilConstants.LONG_MAX_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.LONG_MIN_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
-import static org.onosproject.yangutils.utils.UtilConstants.MAP;
 import static org.onosproject.yangutils.utils.UtilConstants.MORE_OBJ_ATTR;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
@@ -127,6 +126,7 @@
 import static org.onosproject.yangutils.utils.UtilConstants.STRING_BUILDER_VAR;
 import static org.onosproject.yangutils.utils.UtilConstants.THIS;
 import static org.onosproject.yangutils.utils.UtilConstants.TMP_VAL;
+import static org.onosproject.yangutils.utils.UtilConstants.TO_STRING_METHOD;
 import static org.onosproject.yangutils.utils.UtilConstants.TRY;
 import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_SPACE_INDENTATION;
@@ -138,7 +138,7 @@
 import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MIN_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.VALIDATE_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
-import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_LOWER_CASE;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_MAP;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO;
 import static org.onosproject.yangutils.utils.UtilConstants.ZERO;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
@@ -243,7 +243,7 @@
      * @param type indentation type
      * @return method close string
      */
-    static String methodClose(IndentationType type) {
+    public static String methodClose(IndentationType type) {
         switch (type) {
             case EIGHT_SPACE:
                 return EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
@@ -288,6 +288,7 @@
                              String paramType, boolean isBuilderSetter, String setterVal) {
         StringBuilder builder = new StringBuilder();
         String body;
+        String cond;
         switch (type) {
             case GETTER:
                 return getReturnString(paraName, space);
@@ -325,18 +326,18 @@
                         signatureClose() + getReturnString(
                         THIS + signatureClose(), space);
             case AUGMENTED_MAP_ADD:
-                return space + YANG_AUGMENTED_INFO_LOWER_CASE + MAP +
+                return space + YANG_AUGMENTED_INFO_MAP +
                         PERIOD + PUT + OPEN_PARENTHESIS + CLASS +
                         OBJECT_STRING + COMMA + SPACE + VALUE +
                         CLOSE_PARENTHESIS + signatureClose();
             case AUGMENTED_MAP_GET_VALUE:
                 return getReturnString(
-                        YANG_AUGMENTED_INFO_LOWER_CASE + MAP + PERIOD + GET +
+                        YANG_AUGMENTED_INFO_MAP + PERIOD + GET +
                                 brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, CLASS +
                                         OBJECT_STRING, null) + signatureClose(),
                         space);
             case AUGMENTED_MAP_GETTER:
-                return getReturnString(YANG_AUGMENTED_INFO_LOWER_CASE + MAP +
+                return getReturnString(YANG_AUGMENTED_INFO_MAP +
                                                signatureClose(), space);
             case MANAGER_METHODS:
                 body = space + YANG_UTILS_TODO + NEW_LINE;
@@ -604,16 +605,24 @@
      *
      * @return getters for value and select leaf
      */
-    static String getGettersForValueAndSelectLeaf() {
+    static String getIsValueLeafSet() {
         return "\n" +
                 "    @Override\n" +
                 "    public boolean isLeafValueSet(LeafIdentifier leaf) {\n" +
-                "        return getValueLeafFlags().get(leaf.getLeafIndex());\n" +
+                "        return valueLeafFlags.get(leaf.getLeafIndex());\n" +
                 "    }\n" +
-                "\n" +
-                "    @Override\n" +
+                "\n";
+    }
+
+    /**
+     * Returns is select leaf set.
+     *
+     * @return is select leaf set
+     */
+    static String getIsSelectLeafSet() {
+        return "    @Override\n" +
                 "    public boolean isSelectLeaf(LeafIdentifier leaf) {\n" +
-                "        return getSelectLeafFlags().get(leaf.getLeafIndex());\n" +
+                "        return selectLeafFlags.get(leaf.getLeafIndex());\n" +
                 "    }\n";
     }
 
@@ -622,7 +631,7 @@
      *
      * @return getter methods for operation attributes
      */
-    static String getOperationAttributesGetters() {
+    static String getValueLeafGetters() {
         return "\n" +
                 "    /**\n" +
                 "     * Returns the valueLeafFlags.\n" +
@@ -632,8 +641,16 @@
                 "    public BitSet getValueLeafFlags() {\n" +
                 "        return valueLeafFlags;\n" +
                 "    }\n" +
-                "\n" +
-                "    /**\n" +
+                "\n";
+    }
+
+    /**
+     * Returns getter methods for operation attributes.
+     *
+     * @return getter methods for operation attributes
+     */
+    static String getSelectLeafGetters() {
+        return "    /**\n" +
                 "     * Returns the selectLeafFlags.\n" +
                 "     *\n" +
                 "     * @return value of selectLeafFlags\n" +
@@ -894,7 +911,7 @@
      * @return value leaf flag setter
      */
     static String getValueLeafSetString(String name) {
-        return "\n        valueLeafFlags.set(LeafIdentifier." +
+        return "        valueLeafFlags.set(LeafIdentifier." +
                 name.toUpperCase() + ".getLeafIndex());\n";
     }
 
@@ -932,7 +949,7 @@
      * @return definition close string
      */
     private static String defCloseString() {
-        return SPACE + OPEN_CURLY_BRACKET + NEW_LINE + NEW_LINE;
+        return SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
     }
 
     /**
@@ -1180,14 +1197,28 @@
     /**
      * Returns more object attr for union to string method.
      *
+     * @param name name of generate class
      * @return more object attr for union to string method
      */
-    static String getMoreObjectAttr() {
+    static String getMoreObjectAttr(String name) {
+        String cls = name + PERIOD + CLASS;
         StringBuilder attr = new StringBuilder(EIGHT_SPACE_INDENTATION);
         String[] array = {NEW_LINE};
-        attr.append(MORE_OBJ_ATTR).append(GOOGLE_MORE_OBJECT_METHOD_STRING)
+        attr.append(MORE_OBJ_ATTR).append(GOOGLE_MORE_OBJECT_METHOD_STATIC_STRING)
+                .append(brackets(OPEN_CLOSE_BRACKET_WITH_VALUE, cls, null))
                 .append(NEW_LINE).append(FOUR_SPACE_INDENTATION).append(trimAtLast(
                 getOmitNullValueString(), array)).append(signatureClose());
         return attr.toString();
     }
+
+    /**
+     * Returns to string call.
+     *
+     * @param name name of attribute
+     * @return to string call for attribute
+     */
+    static String getToStringCall(String name) {
+        return name + PERIOD +
+                TO_STRING_METHOD + OPEN_CLOSE_BRACKET_STRING;
+    }
 }