[ONOS-4636]grouping and uses

Change-Id: Ic410d03a838003ad23b2b0e8874b91503da84153
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
index 83a2999..04bb2e2 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
@@ -17,17 +17,16 @@
 package org.onosproject.yangutils.translator.tojava;
 
 import java.io.IOException;
-
+import org.onosproject.yangutils.datamodel.TraversalType;
 import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangTypeDef;
-import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
+import org.onosproject.yangutils.translator.exception.InvalidNodeForTranslatorException;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
-import static org.onosproject.yangutils.translator.tojava.TraversalType.CHILD;
-import static org.onosproject.yangutils.translator.tojava.TraversalType.PARENT;
-import static org.onosproject.yangutils.translator.tojava.TraversalType.ROOT;
-import static org.onosproject.yangutils.translator.tojava.TraversalType.SIBILING;
+import static org.onosproject.yangutils.datamodel.TraversalType.CHILD;
+import static org.onosproject.yangutils.datamodel.TraversalType.PARENT;
+import static org.onosproject.yangutils.datamodel.TraversalType.ROOT;
+import static org.onosproject.yangutils.datamodel.TraversalType.SIBILING;
 
 /**
  * Representation of java code generator based on application schema.
@@ -82,23 +81,18 @@
                 if (!(codeGenNode instanceof JavaCodeGenerator)) {
                     throw new TranslatorException("Unsupported node to generate code");
                 }
-                if (codeGenNode instanceof YangTypeDef) {
-                    YangTypeDef typeDef = (YangTypeDef) codeGenNode;
-                    if (typeDef.getTypeDefBaseType().getDataType() == YangDataTypes.LEAFREF
-                            || typeDef.getTypeDefBaseType().getDataType() == YangDataTypes.IDENTITYREF) {
-                        if (codeGenNode.getNextSibling() != null) {
-                            curTraversal = SIBILING;
-                            codeGenNode = codeGenNode.getNextSibling();
-                        } else {
-                            curTraversal = PARENT;
-                            codeGenNode = codeGenNode.getParent();
-                        }
-                        continue;
-                    }
-                }
                 setCurNode(codeGenNode);
                 try {
                     generateCodeEntry(codeGenNode, yangPlugin);
+                } catch (InvalidNodeForTranslatorException e) {
+                    if (codeGenNode.getNextSibling() != null) {
+                        curTraversal = SIBILING;
+                        codeGenNode = codeGenNode.getNextSibling();
+                    } else {
+                        curTraversal = PARENT;
+                        codeGenNode = codeGenNode.getParent();
+                    }
+                    continue;
                 } catch (Exception e) {
                     throw new TranslatorException(e.getMessage());
                 }