code: public Object[] getChildren() {
          if (children != null) {
              return children;
          }
          if (this.isTestcaseDir()) {
              try {
                  ArrayList<TestDataNode> arrayDataNode = new ArrayList<>();
                  // load test case data
                  File tcDataFile = this.getPythonTestScript().getTestcaseData();
                  if (tcDataFile == null) {
                      return new Object[] {};
                  }
                  CSVFile csvDataFile = new CSVFile(tcDataFile);
                  List<LinkedHashMap<String, String>> data = csvDataFile.getCSVDataSet();
                  Iterator<LinkedHashMap<String, String>> it = data.iterator();
                  int rowIndex = 1;
                  while (it.hasNext()) {
                      LinkedHashMap<String, String> dataRow = it.next();
                      if (dataRow.containsKey("COMMENT")) {
                          String comment = dataRow.get("COMMENT");
                          arrayDataNode.add(new TestDataNode(tcDataFile, comment, rowIndex));
                      }
                      rowIndex++;
                  }
                  children = arrayDataNode.toArray();
                  return children;
              } catch (IOException ex) {
                  // unable to read data file
  
              }
  
          } else {
              ArrayList<FileNode> arrayFileNode = new ArrayList<>();
              if (f.isDirectory()) {
                  File[] childFiles = FileUtilities.listSortedFiles(f);
                  for (File childFile : childFiles) {
                      FileNode fn = new FileNode(childFile, childFile.getName(), m_TestSuiteDir);
                      boolean nodeToAdd = fn.isTestcaseDir();
                      if (!fn.isTestcaseDir()) {
                          // go recursilvely to its child and check if it must be added
                          nodeToAdd = checkIfDirectoryContainsTestScriptFile(childFile);
                      }
                      if (nodeToAdd && !childFile.isHidden()) {
  
                          arrayFileNode.add(fn);
                      }
                  }
              }
              children = arrayFileNode.toArray();
          }
          if (children == null) {
              return new Object[] {};
          } else {
              return children;
          }
      }
docs: Loads the children, caching the results in the children ivar.