public static void insertFilesManually() throws IOException {
    FilesToParse ftp = new FilesToParse();

    FileStructure fs2 = new FileStructure();
    fs2.setFilePath(
        codeDirectory
            + "src\\main\\java\\gr\\uop\\intermittent\\faults\\intermittentfaultstest\\Test.java");
    fs2.setFileName("Test.java");
    ClassStructure cs2 = new ClassStructure();
    cs2.setClassName("Test");
    fs2.addClassStructure(cs2);
    ftp.addFileStructure(fs2);

    FileStructure fs3 = new FileStructure();
    fs3.setFilePath(
        codeDirectory + "src\\main\\java\\gr\\uop\\intermittent\\faults\\utils\\Store.java");
    fs3.setFileName("Store.java");
    ClassStructure cs3 = new ClassStructure();
    cs3.setClassName("Store");
    fs3.addClassStructure(cs3);
    ftp.addFileStructure(fs3);

    FileStructure fs4 = new FileStructure();
    fs4.setFilePath(
        codeDirectory + "src\\main\\java\\gr\\uop\\intermittent\\faults\\utils\\CacheStore.java");
    fs4.setFileName("CacheStore.java");
    ClassStructure cs4 = new ClassStructure();
    cs4.setClassName("CacheStore");
    fs4.addClassStructure(cs4);
    ftp.addFileStructure(fs4);

    FileStructure fs5 = new FileStructure();
    fs5.setFilePath(
        codeDirectory + "src\\main\\java\\gr\\uop\\intermittent\\faults\\utils\\CacheObject.java");
    fs5.setFileName("CacheObject.java");
    ClassStructure cs5 = new ClassStructure();
    cs5.setClassName("CacheObject");
    fs5.addClassStructure(cs5);
    ftp.addFileStructure(fs5);

    FileStructure fs6 = new FileStructure();
    fs6.setFilePath(
        codeDirectory
            + "src\\main\\java\\gr\\uop\\intermittent\\faults\\utils\\CacheCollection.java");
    fs6.setFileName("CacheCollection.java");
    ClassStructure cs6 = new ClassStructure();
    cs6.setClassName("CacheCollection");
    fs6.addClassStructure(cs6);
    ftp.addFileStructure(fs6);

    FileStructure fs7 = new FileStructure();
    fs7.setFilePath(
        codeDirectory + "src\\main\\java\\gr\\uop\\intermittent\\faults\\utils\\CacheApi.java");
    fs7.setFileName("CacheApi.java");
    ClassStructure cs7 = new ClassStructure();
    cs7.setClassName("CacheApi");
    fs7.addClassStructure(cs7);
    ftp.addFileStructure(fs7);

    FileStructure fs8 = new FileStructure();
    fs8.setFilePath(
        codeDirectory + "src\\main\\java\\gr\\uop\\intermittent\\faults\\utils\\Cache.java");
    fs8.setFileName("Cache.java");
    ClassStructure cs8 = new ClassStructure();
    cs8.setClassName("Cache");
    fs8.addClassStructure(cs8);
    ftp.addFileStructure(fs8);

    /*    FileStructure fs9 = new FileStructure();
    fs9.setFilePath(codeDirectory + "src\\main\\java\\gr\\uop\\intermittent\\faults\\intermittentfaultstest\\Test.java");
    fs9.setFileName("Test.java");
    ClassStructure cs9 = new ClassStructure();
    cs9.setClassName("Test");
    fs9.addClassStructure(cs9);
    ftp.addFileStructure(fs9); */

    FileStructure fs10 = new FileStructure();
    fs10.setFilePath(
        codeDirectory
            + "src\\main\\java\\gr\\uop\\intermittent\\faults\\intermittentfaultstest\\TestClass.java");
    fs10.setFileName("TestClass.java");
    ClassStructure cs10 = new ClassStructure();
    cs10.setClassName("TestClass");
    fs10.addClassStructure(cs10);
    ftp.addFileStructure(fs10);

    FileStructure fs11 = new FileStructure();
    fs11.setFilePath(
        codeDirectory
            + "src\\main\\java\\gr\\uop\\intermittent\\faults\\intermittentfaultstest\\TestThreads.java");
    fs11.setFileName("TestThreads.java");
    ClassStructure cs11 = new ClassStructure();
    cs11.setClassName("TestThreads");
    fs11.addClassStructure(cs11);
    ftp.addFileStructure(fs11);

    myFS = ftp.getFiles();

    for (FileStructure f : myFS) {
      String filePath = f.getFilePath();
      System.out.println("File Name : " + f.getFileName());
      System.out.println("File Path " + filePath);
      parseForMethods(readFileToString(filePath), f.getClasses().get(0), f);
    }

    for (FileStructure f : myFS) {
      String filePath = f.getFilePath();
      System.out.println("File Name : " + f.getFileName());
      System.out.println("File Path " + filePath);
      parse(readFileToString(filePath), f.getClasses().get(0), f);
      f.printLineDictionary();
    }

    Utils.insertDependencies(ftp);

    for (FileStructure f : myFS) {
      f.printLineDictionary();
    }

    ftp.printFilesToParse();
  }
  /** @param args the command line arguments */
  public static void main(String[] args) throws IOException, InterruptedException {
    insertFilesManually();

    // Add lines in the code for Record Phase
    for (FileStructure fs : myFS) {
      String filePath = fs.getFilePath();
      System.out.println("FilePath : " + filePath);
      File file = new File(filePath);
      AddImport.addLines(
          file,
          "import org.jboss.metrics.javase.automatedmetricsjavaseapi.JbossAutomatedJavaSeMetricsDbStore;");
      AddImport.addLines(
          file, "import gr.uop.intermittentfaults.intermmittentfaultsutils.GlobalParams;");

      for (ClassStructure cs : fs.getClasses()) {
        String className = cs.getClassName();
        for (MethodStructure ms : cs.getMethods()) {
          String methodName = ms.getMethodName();
          Info info = ms.getMethodInfo().get(0);
          int line = info.getLine();
          int methodLength = info.getStructureLength();
          List<Integer> additionalLines = new ArrayList<>();
          for (int i = line + 1; i < line + methodLength - 1; i++) {
            additionalLines.add(i);
          }

          List<Integer> excludeLines = new ArrayList<>();
          if (filePath.compareTo(
                      codeDirectory
                          + "src\\main\\java\\gr\\uop\\intermittent\\faults\\intermittentfaultstest\\Test.java")
                  == 0
              && methodName.compareTo("test") == 0) {
            excludeLines.add(87);
          }

          if (filePath.compareTo(
                      codeDirectory
                          + "src\\main\\java\\gr\\uop\\intermittent\\faults\\intermittentfaultstest\\TestThreads.java")
                  == 0
              && methodName.compareTo("getT") == 0) {
            excludeLines.add(68);
          }

          AddFileLines.addLines(
              file, additionalLines, excludeLines, className, methodName, filePath);
        }
      }
    }

    Runtime.getRuntime()
        .exec(
            "cmd /c start C:\\Users\\Panos\\Documents\\NetBeansProjects\\appendFileLines\\src\\main\\java\\gr\\uop\\intermittentfaults\\appendfilelines\\runCompile.bat");
    Thread.sleep(10000);
    MetricsCache cache = Test.test(args);
    //   if (cache!=null) {
    //           System.out.println("Cache : " );
    //            cache.printMetricObjects();
    //       }

    Runtime.getRuntime()
        .exec(
            "cmd /c start C:\\Users\\Panos\\Documents\\NetBeansProjects\\appendFileLines\\src\\main\\java\\gr\\uop\\intermittentfaults\\appendfilelines\\runReset.bat");
  }