/**
  * Translates to java code corresponding to the YANG schema.
  *
  * @param yangFileInfo YANG file information
  * @param yangPlugin YANG plugin config
  * @throws IOException when fails to generate java code file the current node
  */
 public static void translateToJava(List<YangFileInfo> yangFileInfo, YangPluginConfig yangPlugin)
     throws IOException {
   Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
   while (yangFileIterator.hasNext()) {
     YangFileInfo yangFile = yangFileIterator.next();
     generateJavaCode(yangFile.getRootNode(), yangPlugin, yangFile.getYangFileName());
   }
 }
 /**
  * Resolves sub-module linking.
  *
  * @param yangFileInfo YANG file information
  * @throws DataModelException when belongs-to module node is not found
  */
 public static void resolveLinkingForSubModule(List<YangFileInfo> yangFileInfo)
     throws DataModelException {
   Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
   while (yangFileIterator.hasNext()) {
     YangFileInfo yangFile = yangFileIterator.next();
     YangNode yangNode = yangFile.getRootNode();
     if (yangNode instanceof YangSubModule) {
       String belongsToModuleName =
           ((YangSubModule) yangNode).getBelongsTo().getBelongsToModuleName();
       YangNode moduleNode = findBelongsToModuleNode(yangFileInfo, belongsToModuleName);
       ((YangSubModule) yangNode).getBelongsTo().setModuleNode(moduleNode);
     }
   }
 }