[ONOS-4799],[ONOS-4351] Augment inter file linker and Generated Code refactored.

Change-Id: Id1f3ac9c90a632373f51cc75d499c3110216be17
diff --git a/utils/yangutils/plugin/src/test/resources/augmentTranslator/test.yang b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test.yang
new file mode 100644
index 0000000..76ea6c9
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test.yang
@@ -0,0 +1,68 @@
+module test {  
+    namespace "test:test";  
+    prefix test ;  
+       
+           
+    import test1{  
+       prefix test1;
+    }  
+
+    import test2{  
+       prefix test2;
+    } 
+
+    include acme-types;
+      
+    organization "";  
+    contact "";  
+       
+    description   
+       "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+       reference "";  
+    }  
+
+    container cont1 {
+        container cont2 {
+           leaf leaf {
+              type int32;
+           }
+        }
+     }
+
+
+    augment /cont3 {
+        leaf leaf1 {
+           type int32;
+         }
+    }
+
+    augment /cont1/cont2 {
+        leaf leaf2 {
+           type int32;
+        }
+    }
+
+    augment /test1:cont1/test1:cont2 {
+       leaf a {
+          type int32;
+        }
+     }
+
+     augment /test1:cont1/test1:cont2/test1:cont1s/test1:cont1s {
+         leaf a {
+            type int32;
+          }
+      }
+
+     augment /test1:cont1/test1:cont2/test1:cont1s/test1:cont1s/test2:aa {
+        leaf a {
+           type int32;
+        }
+        container aa {
+        }
+     }
+
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/augmentTranslator/test2.yang b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test2.yang
new file mode 100644
index 0000000..3b5de76
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test2.yang
@@ -0,0 +1,30 @@
+module test1 {  
+    namespace "test1:test1";  
+    prefix test1 ;  
+                  
+    organization "";  
+    contact "";  
+       
+    description   
+       "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+       reference "";  
+    }  
+
+    container cont1 {
+        container cont2 {
+        }
+     }
+
+    augment /cont1/cont2 {
+       leaf leaf4 {
+          type int32;
+        }
+        container cont1s {
+            container cont1s {
+            }
+        }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/augmentTranslator/test3.yang b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test3.yang
new file mode 100644
index 0000000..dca558c
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test3.yang
@@ -0,0 +1,26 @@
+module test2 {  
+    namespace "test2:test2";  
+    prefix test2 ;  
+                  
+    import test1{  
+       prefix test1;
+    }  
+    organization "";  
+    contact "";  
+       
+    description   
+       "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+       reference "";  
+    }  
+
+
+    augment /test1:cont1/test1:cont2/test1:cont1s/test1:cont1s {
+        leaf leaf5 {
+          type int32;
+        }
+        container aa {
+        }
+    }
+}
diff --git a/utils/yangutils/plugin/src/test/resources/augmentTranslator/test4.yang b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test4.yang
new file mode 100644
index 0000000..daa0f88
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/augmentTranslator/test4.yang
@@ -0,0 +1,21 @@
+submodule acme-types { 
+        
+    belongs-to "test" {
+         prefix "test";
+    }           
+    import test1{  
+       prefix test1;
+    }  
+    organization "";  
+    contact "";  
+         
+    description   
+       "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+       reference "";  
+    }  
+
+    container cont3 {
+    }
+}
diff --git a/utils/yangutils/plugin/src/test/resources/interfileietf/ietf-te-topology.yang b/utils/yangutils/plugin/src/test/resources/interfileietf/ietf-te-topology.yang
index 5b65dff..106b2aa 100644
--- a/utils/yangutils/plugin/src/test/resources/interfileietf/ietf-te-topology.yang
+++ b/utils/yangutils/plugin/src/test/resources/interfileietf/ietf-te-topology.yang
@@ -1723,8 +1723,9 @@
        uses tet:te-link-state-derived;
      }
 
+     /*
      augment "/te-link-event/te-link-attributes/underlay" {
        description "Add state attributes to te-link underlay.";
        uses te-link-state-underlay-attributes;
-     }
+     } */
    }
diff --git a/utils/yangutils/plugin/src/test/resources/manager/module.yang b/utils/yangutils/plugin/src/test/resources/manager/module.yang
new file mode 100644
index 0000000..212b171
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/manager/module.yang
@@ -0,0 +1,12 @@
+module test5 {
+    namespace "test5:test";
+    prefix test ;
+
+    revision "2016-07-04" {
+             description "Initial revision.";
+    }
+    typedef abc {
+       type int32;
+    }
+
+}
diff --git a/utils/yangutils/plugin/src/test/resources/manager/submodule.yang b/utils/yangutils/plugin/src/test/resources/manager/submodule.yang
new file mode 100644
index 0000000..961147c
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/manager/submodule.yang
@@ -0,0 +1,15 @@
+submodule test6 {
+      
+     belongs-to "test5" {
+         prefix "test";
+    }    
+
+    revision "2016-07-04" {
+             description "Initial revision.";
+    }
+    grouping abc {
+        leaf leaf1 {
+           type int32;
+        }
+    }
+}
diff --git a/utils/yangutils/plugin/src/test/resources/manager/test.yang b/utils/yangutils/plugin/src/test/resources/manager/test.yang
new file mode 100644
index 0000000..7b2861c
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/manager/test.yang
@@ -0,0 +1,13 @@
+module test7 {
+    namespace "test5:test";  
+    prefix test ;  
+
+    revision "2016-07-04" {
+             description "Initial revision.";
+    }
+
+    leaf abc {
+       type int32;
+    }
+
+}
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test.yang
new file mode 100644
index 0000000..772f792
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test.yang
@@ -0,0 +1,25 @@
+module test {  
+    namespace "xpath:inter:single";  
+    prefix test ; 
+   
+    import test1{
+       prefix test1;
+    }
+ 
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test1:cont1/test1:cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test1.yang
new file mode 100644
index 0000000..9c1cdb0
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test1.yang
@@ -0,0 +1,26 @@
+module test1 {  
+    namespace "xpath:inter:single";  
+    prefix test1 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+           leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test.yang
new file mode 100644
index 0000000..640a15a
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test.yang
@@ -0,0 +1,25 @@
+module test {  
+    namespace "xpath:inter:single";  
+    prefix test ; 
+   
+    import test1{
+       prefix test1;
+    }
+ 
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test1:cont1/test1:cont2/test1:cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test1.yang
new file mode 100644
index 0000000..c9fbeab
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test1.yang
@@ -0,0 +1,34 @@
+module test1 {  
+    namespace "xpath:inter:single";  
+    prefix test1 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont1 {
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+          container cont2 {
+             leaf leaf1 {
+                type int32;
+             }
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test.yang
new file mode 100644
index 0000000..53ed780
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test.yang
@@ -0,0 +1,29 @@
+module test {  
+    namespace "xpath:inter:single";  
+    prefix test ; 
+   
+    import test1{
+       prefix test1;
+    }
+
+    import test2{
+       prefix test2;
+    }
+ 
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+     augment /test2:cont1/test2:cont2/test1:cont2 {
+       leaf a {
+          type int32;
+       }
+     }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test1.yang
new file mode 100644
index 0000000..9ae5e24
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test1.yang
@@ -0,0 +1,51 @@
+module test1 {  
+    namespace "xpath:inter:single";  
+    prefix test1 ;  
+      
+    import test2{
+       prefix test2;
+    }
+
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont1 {
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+          container cont2 {
+             leaf leaf1 {
+                type int32;
+             }
+          }
+       }
+    }
+   
+    augment /test2:cont1/test2:cont2 {
+       leaf a {
+          type int32;
+       }
+
+       container cont2 {
+             leaf leaf1 {
+                type int32;
+             }
+        }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test2.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test2.yang
@@ -0,0 +1,26 @@
+module test2 {  
+    namespace "xpath:inter:multi";  
+    prefix test2 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test.yang
new file mode 100644
index 0000000..139e2c5
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test.yang
@@ -0,0 +1,29 @@
+module test {  
+    namespace "xpath:inter:single";  
+    prefix test ; 
+   
+    import test1{
+       prefix test1;
+    }
+
+    import test2{
+       prefix test2;
+    }
+ 
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+     augment /test2:cont1/test2:cont2/test2:cont3/test1:cont2 {
+       leaf a {
+          type int32;
+       }
+     }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test1.yang
new file mode 100644
index 0000000..ed3716f
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test1.yang
@@ -0,0 +1,51 @@
+module test1 {  
+    namespace "xpath:inter:single";  
+    prefix test1 ;  
+      
+    import test2{
+       prefix test2;
+    }
+
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont1 {
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+          container cont2 {
+             leaf leaf1 {
+                type int32;
+             }
+          }
+       }
+    }
+   
+    augment /test2:cont1/test2:cont2/test2:cont3 {
+       leaf a {
+          type int32;
+       }
+
+       container cont2 {
+             leaf leaf1 {
+                type int32;
+             }
+        }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test2.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test2.yang
new file mode 100644
index 0000000..f65bef0
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test2.yang
@@ -0,0 +1,34 @@
+module test2 {  
+    namespace "xpath:inter:multi";  
+    prefix test2 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+
+    augment /cont1/cont2 {
+        container cont3 {
+            leaf a {
+              type string;
+            }
+        }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test.yang
new file mode 100644
index 0000000..40b2386
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test.yang
@@ -0,0 +1,33 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+    
+    import test2 {
+       prefix test2;
+    }
+   
+    include test1;
+
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test2:cont1/test2:cont2/cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+
+    augment /cont2/cont3/cont4 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test1.yang
new file mode 100644
index 0000000..a19ba356
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test1.yang
@@ -0,0 +1,50 @@
+submodule test1 {  
+
+    belongs-to test {
+         prefix test;
+    }           
+    
+    import test2 {
+       prefix test2;
+    }
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }
+
+    container cont2 {
+          leaf leaf1 {
+             type int32;
+         }
+         container cont3 {
+            leaf leaf1 {
+               type int32;
+            }
+         }
+     }
+    
+    augment /cont2/cont3 {
+        container cont4 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+
+    augment /test2:cont1/test2:cont2 {
+       leaf a {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test2.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test2.yang
@@ -0,0 +1,26 @@
+module test2 {  
+    namespace "xpath:inter:multi";  
+    prefix test2 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test.yang
new file mode 100644
index 0000000..80ee110
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test.yang
@@ -0,0 +1,32 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+    
+    import test2 {
+       prefix test2;
+    }
+   
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }
+
+    container cont2 {
+       leaf a {
+          type int32;
+       }
+       uses test2:group1; 
+    }
+
+    augment /cont2/group1/cont1/cont2 {
+          leaf a {
+          type int32;
+       }
+    } 
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test2.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test2.yang
new file mode 100644
index 0000000..298d443
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test2.yang
@@ -0,0 +1,28 @@
+module test2 {  
+    namespace "xpath:inter:multi";  
+    prefix test2 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+   grouping group1 {
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+  }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test.yang
new file mode 100644
index 0000000..102ec39
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test.yang
@@ -0,0 +1,25 @@
+module test {  
+    namespace "xpath:inter:single";  
+    prefix test ; 
+   
+    import test1{
+       prefix test1;
+    }
+ 
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test1:cont1 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test1.yang
new file mode 100644
index 0000000..243ddfe
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test1.yang
@@ -0,0 +1,21 @@
+module test1 {  
+    namespace "xpath:inter:single";  
+    prefix test1 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test.yang
new file mode 100644
index 0000000..772f792
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test.yang
@@ -0,0 +1,25 @@
+module test {  
+    namespace "xpath:inter:single";  
+    prefix test ; 
+   
+    import test1{
+       prefix test1;
+    }
+ 
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test1:cont1/test1:cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test1.yang
new file mode 100644
index 0000000..b9c5e32
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test1.yang
@@ -0,0 +1,29 @@
+module test1 {  
+    namespace "xpath:inter:single";  
+    prefix test1 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont1 {
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test.yang
new file mode 100644
index 0000000..a8340ab
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test.yang
@@ -0,0 +1,27 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+    
+    import test2 {
+       prefix test2;
+    }
+   
+    include test1;
+
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test2:cont1/test2:cont2/cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test1.yang
new file mode 100644
index 0000000..ebc8750
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test1.yang
@@ -0,0 +1,31 @@
+submodule test1 {  
+
+    belongs-to test {
+         prefix test;
+    }           
+    
+    import test2 {
+       prefix test2;
+    }
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    augment /test2:cont1/test2:cont2 {
+       leaf a {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test2.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test2.yang
@@ -0,0 +1,26 @@
+module test2 {  
+    namespace "xpath:inter:multi";  
+    prefix test2 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test.yang
new file mode 100644
index 0000000..4b15645
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test.yang
@@ -0,0 +1,34 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+    
+    import test2 {
+       prefix test2;
+    }
+   
+    include test1;
+
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }
+
+    augment /test2:cont1/test2:cont2/cont2 {
+       leaf a {
+          type int32;
+       }
+       uses group1; 
+    }
+
+    augment /test2:cont1/test2:cont2/cont2/group1/cont1/cont2 {
+          leaf a {
+          type int32;
+       }
+    } 
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test1.yang
new file mode 100644
index 0000000..fbc3bcb
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test1.yang
@@ -0,0 +1,42 @@
+submodule test1 {  
+
+    belongs-to test {
+         prefix test;
+    }           
+    
+    import test2 {
+       prefix test2;
+    }
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+
+    grouping group1 {
+        container cont1 {
+           container cont2 {
+               leaf a {
+                  type string;
+               }
+           }
+        }
+    }
+
+    augment /test2:cont1/test2:cont2 {
+       leaf a {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test2.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test2.yang
@@ -0,0 +1,26 @@
+module test2 {  
+    namespace "xpath:inter:multi";  
+    prefix test2 ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMulti/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMulti/test.yang
new file mode 100644
index 0000000..77d61b9
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMulti/test.yang
@@ -0,0 +1,37 @@
+module test {  
+    namespace "xpath:intra:multi";  
+    prefix test ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf2 {
+             type int32;
+          }
+          container cont3 {
+              leaf leaf3 {
+                type int32;
+             }
+          }
+       }
+    }
+
+    augment /cont1/cont2/cont3 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiAugment/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiAugment/test.yang
new file mode 100644
index 0000000..b53012c
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiAugment/test.yang
@@ -0,0 +1,54 @@
+module test {  
+    namespace "xpath:intra:multi";  
+    prefix test ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont2 {
+          leaf leaf2 {
+             type int32;
+          }
+          container cont3 {
+              leaf leaf3 {
+                type int32;
+             }
+          }
+       }
+    }
+
+    augment /cont1/cont2/cont3 {
+       leaf a {
+          type int32;
+       }
+       container cont4 {
+          leaf leaf2 {
+             type int32;
+          }
+       }
+    }
+
+    augment /cont1/cont2/cont3/cont4 {
+       leaf a {
+          type int32;
+       }
+
+       container cont5 {
+           leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test.yang
new file mode 100644
index 0000000..b5d1c8d
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test.yang
@@ -0,0 +1,28 @@
+module test {  
+    namespace "xpath:intra:multi";  
+    prefix test ;  
+    
+    include test1;
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont2/cont3 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test1.yang
new file mode 100644
index 0000000..faf672e
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test1.yang
@@ -0,0 +1,28 @@
+submodule test1 {  
+
+    belongs-to "test" {
+         prefix "test";
+    }           
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont2 {
+       leaf leaf1 {
+          type int32;
+       }
+       container cont3 {
+           leaf leaf3 {
+             type int32;
+          }
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiUses/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiUses/test.yang
new file mode 100644
index 0000000..6cfb133
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiUses/test.yang
@@ -0,0 +1,38 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    grouping group1 {
+        container cont1 {
+           leaf leaf1 {
+             type int32;
+           }
+           container cont3 {
+               leaf leaf1 {
+                 type int32;
+              }
+           }
+        }
+    }
+
+    container cont2 {
+         uses group1;
+    }
+
+    augment /cont2/group1/cont1/cont3 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingle/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingle/test.yang
new file mode 100644
index 0000000..95d9c2b
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingle/test.yang
@@ -0,0 +1,27 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont1 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleAugment/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleAugment/test.yang
new file mode 100644
index 0000000..2925dcf
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleAugment/test.yang
@@ -0,0 +1,39 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont1 {
+       leaf a {
+          type int32;
+       }
+
+       container cont2 {
+           leaf leaf1 {
+             type int32;
+          }
+       }
+    }
+
+    augment /cont1/cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test.yang
new file mode 100644
index 0000000..77401da
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test.yang
@@ -0,0 +1,28 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+    
+    include test1;
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont1 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+
+    augment /cont2 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test1.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test1.yang
new file mode 100644
index 0000000..47d4c5c
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test1.yang
@@ -0,0 +1,23 @@
+submodule test1 {  
+
+    belongs-to test {
+         prefix test;
+    }           
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    container cont2 {
+       leaf leaf1 {
+          type int32;
+       }
+    }
+}
+    
diff --git a/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleUses/test.yang b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleUses/test.yang
new file mode 100644
index 0000000..c60668a
--- /dev/null
+++ b/utils/yangutils/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleUses/test.yang
@@ -0,0 +1,33 @@
+module test {  
+    namespace "xpath:intra:single";  
+    prefix test ;  
+      
+    organization "";  
+    contact "";  
+       
+    description   
+        "Defines basic service types for L3VPN service.";  
+       
+    revision "2015-12-16" {  
+        reference "";  
+    }  
+
+    grouping group1 {
+        container cont1 {
+           leaf leaf1 {
+             type int32;
+           }
+        }
+    }
+
+    container cont2 {
+         uses group1;
+    }
+
+    augment /cont2/group1/cont1 {
+       leaf a {
+          type int32;
+       }
+    }
+}
+