code: private void collectChildren(DependencyInfo dependencyInfo, HashMap<String, DependencyInfo> packageDependencyMap,
                                   HashMap<DependencyInfo, Collection<String>> requireDependenciesMap) {
          Collection<String> requires = requireDependenciesMap.get(dependencyInfo);
          // check if dependencyInfo object already have children's
          if (dependencyInfo.getChildren().isEmpty()) {
              for (String require : requires) {
                  DependencyInfo dependencyChild = packageDependencyMap.get(require);
                  if (dependencyChild != null) {
                      dependencyInfo.getChildren().add(dependencyChild);
                      collectChildren(dependencyChild, packageDependencyMap, requireDependenciesMap);
                  }
              }
          }
      }
docs: collect children's recursively for each dependencyInfo object