public boolean equals(Object obj) {
    if (!(obj instanceof Tool source)) {
      return false;
    }

    return
      Objects.equals(myName, source.myName) &&
      Objects.equals(myDescription, source.myDescription) &&
      Objects.equals(myGroup, source.myGroup) &&
      myShownInMainMenu == source.myShownInMainMenu &&
      myShownInEditor == source.myShownInEditor &&
      myShownInProjectViews == source.myShownInProjectViews &&
      myShownInSearchResultsPopup == source.myShownInSearchResultsPopup &&
      myEnabled == source.myEnabled &&
      myUseConsole == source.myUseConsole &&
      myShowConsoleOnStdOut == source.myShowConsoleOnStdOut &&
      myShowConsoleOnStdErr == source.myShowConsoleOnStdErr &&
      mySynchronizeAfterExecution == source.mySynchronizeAfterExecution &&
      Objects.equals(myWorkingDirectory, source.myWorkingDirectory) &&
      Objects.equals(myProgram, source.myProgram) &&
      Objects.equals(myParameters, source.myParameters) &&
      Comparing.equal(myOutputFilters, source.myOutputFilters);
  }
public boolean equals(Object obj)