YANG Grouping Linker Support

Change-Id: I2fec0c0bb4d1584e82ffba3228106897ccad2bf5
diff --git a/src/test/java/org/onosproject/yangutils/linker/IntraFileTypeLinkingTest.java b/src/test/java/org/onosproject/yangutils/linker/IntraFileTypeLinkingTest.java
index eaf4076..52fb4ff 100644
--- a/src/test/java/org/onosproject/yangutils/linker/IntraFileTypeLinkingTest.java
+++ b/src/test/java/org/onosproject/yangutils/linker/IntraFileTypeLinkingTest.java
@@ -18,6 +18,7 @@
 
 import java.io.IOException;
 import java.util.ListIterator;
+
 import org.junit.Test;
 import org.onosproject.yangutils.datamodel.ResolvableStatus;
 import org.onosproject.yangutils.datamodel.YangContainer;
@@ -46,7 +47,8 @@
      * Checks self resolution when typedef and leaf using type are siblings.
      */
     @Test
-    public void processSelfResolutionWhenTypeAndTypedefAtRootLevel() throws IOException, ParserException {
+    public void processSelfResolutionWhenTypeAndTypedefAtRootLevel()
+            throws IOException, ParserException {
 
         YangNode node = manager.getDataModel("src/test/resources/SelfResolutionWhenTypeAndTypedefAtRootLevel.yang");
 
@@ -79,7 +81,8 @@
      * level where typedef is at the root.
      */
     @Test
-    public void processSelfFileLinkingTypedefAtRootTypeTwoLevelInHierarchy() throws IOException, ParserException {
+    public void processSelfFileLinkingTypedefAtRootTypeTwoLevelInHierarchy()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingTypedefAtRootTypeTwoLevelInHierarchy.yang");
@@ -118,7 +121,8 @@
      * of type.
      */
     @Test
-    public void processSelfFileLinkingTypedefAtRootIsAfterContainerHavingType() throws IOException, ParserException {
+    public void processSelfFileLinkingTypedefAtRootIsAfterContainerHavingType()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingTypedefAtRootIsAfterContainerHavingType.yang");
@@ -157,7 +161,8 @@
      * holder of type.
      */
     @Test
-    public void processSelfFileLinkingTypedefAtMiddleLevelAfterParentHolder() throws IOException, ParserException {
+    public void processSelfFileLinkingTypedefAtMiddleLevelAfterParentHolder()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingTypedefAtMiddleLevelAfterParentHolder.yang");
@@ -194,7 +199,8 @@
      * Checks self resolution when typedef hierarchical references are present.
      */
     @Test
-    public void processSelfFileLinkingWithTypdefHierarchicalReference() throws IOException, ParserException {
+    public void processSelfFileLinkingWithTypdefHierarchicalReference()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingWithTypdefHierarchicalReference.yang");
@@ -227,16 +233,16 @@
 
         YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
 
-        assertThat(((YangDerivedInfo<?>) typeDef1.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
-        assertThat((typeDef1.getDataType().getResolvableStatus()),
+        assertThat((typeDef1.getTypeDefBaseType().getResolvableStatus()),
                 is(ResolvableStatus.RESOLVED));
 
         YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
 
-        assertThat(((YangDerivedInfo<?>) typeDef2.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) node.getChild()));
-        assertThat((typeDef2.getDataType().getResolvableStatus()),
+        assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()),
                 is(ResolvableStatus.RESOLVED));
     }
 
@@ -245,7 +251,8 @@
      * with last type is unresolved.
      */
     @Test
-    public void processSelfFileLinkingWithTypdefHierarchicalRefUnresolved() throws IOException, ParserException {
+    public void processSelfFileLinkingWithTypdefHierarchicalRefUnresolved()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingWithTypdefHierarchicalRefUnresolved.yang");
@@ -274,28 +281,29 @@
         assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) yangList.getChild()));
         assertThat((leafInfo.getDataType().getResolvableStatus()),
-                is(ResolvableStatus.PARTIALLY_RESOLVED));
+                is(ResolvableStatus.INTRA_FILE_RESOLVED));
 
         YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
 
-        assertThat(((YangDerivedInfo<?>) typeDef1.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
-        assertThat((typeDef1.getDataType().getResolvableStatus()),
-                is(ResolvableStatus.PARTIALLY_RESOLVED));
+        assertThat((typeDef1.getTypeDefBaseType().getResolvableStatus()),
+                is(ResolvableStatus.INTRA_FILE_RESOLVED));
 
         YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
 
-        assertThat(((YangDerivedInfo<?>) typeDef2.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) node.getChild()));
-        assertThat((typeDef2.getDataType().getResolvableStatus()),
-                is(ResolvableStatus.PARTIALLY_RESOLVED));
+        assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()),
+                is(ResolvableStatus.INTRA_FILE_RESOLVED));
     }
 
     /**
      * Checks self resolution when type uses prefix of self module.
      */
     @Test
-    public void processSelfFileLinkingWithTypeWithSelfModulePrefix() throws IOException, ParserException {
+    public void processSelfFileLinkingWithTypeWithSelfModulePrefix()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingWithTypeWithSelfModulePrefix.yang");
@@ -328,16 +336,16 @@
 
         YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
 
-        assertThat(((YangDerivedInfo<?>) typeDef1.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef1.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) yangContainer.getChild().getNextSibling()));
-        assertThat((typeDef1.getDataType().getResolvableStatus()),
+        assertThat((typeDef1.getTypeDefBaseType().getResolvableStatus()),
                 is(ResolvableStatus.RESOLVED));
 
         YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
 
-        assertThat(((YangDerivedInfo<?>) typeDef2.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) node.getChild()));
-        assertThat((typeDef2.getDataType().getResolvableStatus()),
+        assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()),
                 is(ResolvableStatus.RESOLVED));
     }
 
@@ -346,7 +354,8 @@
      * some uses external prefix.
      */
     @Test
-    public void processSelfFileLinkingWithTypeWithSelfAndExternalPrefixMix() throws IOException, ParserException {
+    public void processSelfFileLinkingWithTypeWithSelfAndExternalPrefixMix()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingWithTypeWithSelfAndExternalPrefixMix.yang");
@@ -375,15 +384,15 @@
         assertThat(((YangDerivedInfo<?>) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) yangList.getChild()));
         assertThat((leafInfo.getDataType().getResolvableStatus()),
-                is(ResolvableStatus.PARTIALLY_RESOLVED));
+                is(ResolvableStatus.INTRA_FILE_RESOLVED));
 
         YangTypeDef typeDef1 = (YangTypeDef) yangList.getChild();
 
         YangTypeDef typeDef2 = (YangTypeDef) yangContainer.getChild().getNextSibling();
 
-        assertThat(((YangDerivedInfo<?>) typeDef2.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef(),
+        assertThat(((YangDerivedInfo<?>) typeDef2.getTypeDefBaseType().getDataTypeExtendedInfo()).getReferredTypeDef(),
                 is((YangTypeDef) node.getChild()));
-        assertThat((typeDef2.getDataType().getResolvableStatus()),
+        assertThat((typeDef2.getTypeDefBaseType().getResolvableStatus()),
                 is(ResolvableStatus.RESOLVED));
     }
 
@@ -392,7 +401,8 @@
      * file.
      */
     @Test(expected = ParserException.class)
-    public void processSelfResolutionWhenTypeReferredTypedefNotDefined() throws IOException, ParserException {
+    public void processSelfResolutionWhenTypeReferredTypedefNotDefined()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfResolutionWhenTypeReferredTypedefNotDefined.yang");
@@ -403,7 +413,8 @@
      * level where typedef is is not an ancestor of type.
      */
     @Test(expected = ParserException.class)
-    public void processSelfFileLinkingTypedefNotFound() throws IOException, ParserException {
+    public void processSelfFileLinkingTypedefNotFound()
+            throws IOException, ParserException {
 
         YangNode node = manager.getDataModel("src/test/resources/SelfFileLinkingTypedefNotFound.yang");
     }
@@ -412,7 +423,8 @@
      * Checks hierarchical self resolution with self resolution failure scenario.
      */
     @Test(expected = ParserException.class)
-    public void processSelfFileLinkingWithHierarchicalTypeFailureScenario() throws IOException, ParserException {
+    public void processSelfFileLinkingWithHierarchicalTypeFailureScenario()
+            throws IOException, ParserException {
 
         YangNode node =
                 manager.getDataModel("src/test/resources/SelfFileLinkingWithHierarchicalTypeFailureScenario.yang");
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/InputListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/InputListenerTest.java
index 7ec10cf..95c402a 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/InputListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/InputListenerTest.java
@@ -106,6 +106,6 @@
         YangTypeDef typeDef = (YangTypeDef) yangInput.getChild();
         assertThat(typeDef.getName(), is("my-type"));
         assertThat(typeDef.getStatus(), is(YangStatusType.DEPRECATED));
-        assertThat(typeDef.getDataType().getDataType(), is(YangDataTypes.INT32));
+        assertThat(typeDef.getTypeDefBaseType().getDataType(), is(YangDataTypes.INT32));
     }
 }
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
index e5e647a..a8f494b 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
@@ -128,7 +128,7 @@
         assertThat(yangNode.getName(), is("Test"));
 
         YangTypeDef typedef = (YangTypeDef) yangNode.getChild();
-        YangStringRestriction stringRestriction = (YangStringRestriction) typedef.getDataType()
+        YangStringRestriction stringRestriction = (YangStringRestriction) typedef.getTypeDefBaseType()
                 .getDataTypeExtendedInfo();
 
         YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
@@ -234,4 +234,4 @@
                 " 18446744073709551615.");
         YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidInterval.yang");
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/OutputListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/OutputListenerTest.java
index f6a5437..ded5c49 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/OutputListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/OutputListenerTest.java
@@ -108,6 +108,6 @@
         assertThat(typeDef.getStatus(), is(YangStatusType.DEPRECATED));
         assertThat(typeDef.getName(), is("my-type"));
         assertThat(typeDef.getStatus(), is(YangStatusType.DEPRECATED));
-        assertThat(typeDef.getDataType().getDataType(), is(YangDataTypes.INT32));
+        assertThat(typeDef.getTypeDefBaseType().getDataType(), is(YangDataTypes.INT32));
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java
index ffd8470..fb0ec72 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java
@@ -108,7 +108,7 @@
         assertThat(yangNode.getName(), is("Test"));
 
         YangTypeDef typedef = (YangTypeDef) yangNode.getChild();
-        YangStringRestriction stringRestriction = (YangStringRestriction) typedef.getDataType()
+        YangStringRestriction stringRestriction = (YangStringRestriction) typedef.getTypeDefBaseType()
                 .getDataTypeExtendedInfo();
 
         YangPatternRestriction yangPatternRestriction = stringRestriction.getPatternRestriction();
@@ -166,4 +166,4 @@
                 .getPatternList().listIterator();
         assertThat(patternListIterator.next(), is("-[0-9]+|[0-9]+"));
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RpcListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RpcListenerTest.java
index adb88dc..3af045d 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RpcListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RpcListenerTest.java
@@ -61,6 +61,6 @@
         YangTypeDef typeDef = (YangTypeDef) yangRpc.getChild();
         assertThat(typeDef.getName(), is("my-type"));
         assertThat(typeDef.getStatus(), is(YangStatusType.DEPRECATED));
-        assertThat(typeDef.getDataType().getDataType(), is(YangDataTypes.INT32));
+        assertThat(typeDef.getTypeDefBaseType().getDataType(), is(YangDataTypes.INT32));
     }
 }