Optimizing Generate Code Function in Translator and updating enum/union to support a special hierarchical scenario

Change-Id: I14a971ff6fcda6ae5e86ffe4c11d17a844e371ce
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java
index 469809c..f004d5e 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangEnumeration.java
@@ -31,18 +31,19 @@
 /**
  * Represents the enumeration data type information.
  */
-public class YangEnumeration implements Parsable {
+public class YangEnumeration extends YangNode implements Parsable {
 
     // Enumeration info set.
     private Set<YangEnum> enumSet;
 
     // Enumeration name.
-    private String enumerationName;
+    private String name;
 
     /**
      * Creates an enumeration object.
      */
     public YangEnumeration() {
+        super(YangNodeType.ENUMERATION_NODE);
         setEnumSet(new HashSet<YangEnum>());
     }
 
@@ -77,21 +78,23 @@
     }
 
     /**
-     * Return enumeration name.
+     * Returns enumeration name.
      *
      * @return the enumeration name
      */
-    public String getEnumerationName() {
-        return enumerationName;
+    @Override
+    public String getName() {
+        return name;
     }
 
     /**
      * Sets the enumeration name.
      *
-     * @param enumerationName enumeration name
+     * @param name enumeration name
      */
-    public void setEnumerationName(String enumerationName) {
-        this.enumerationName = enumerationName;
+    @Override
+    public void setName(String name) {
+        this.name = name;
     }
 
     /**