public void add(String filePath, String languageName, String moduleName, int lineCount) {
    // Get rid of Microsoft's incompatibility once and forever
    filePath = filePath.replace("\\", DIRECTORY_SEPARATOR);

    String folderPath = extractFolder(filePath);

    File file = new File(filePath, languageName, moduleName, lineCount);
    this.addFile(file);

    Folder folder = this.getFolder(folderPath);
    if (folder == null) {
      folder = new Folder(folderPath);
      this.addFolder(folder);
    }
    folder.addFile(file);

    Language language = this.getLanguage(languageName);
    if (language == null) {
      language = new Language(languageName);
      this.addLanguage(language);
    }
    language.addFile(file);

    Module module = getModule(moduleName);
    if (module == null) {
      module = new Module(moduleName);
      this.addModule(module);
    }
    module.addFile(file);
  }