public void reviewChange(
      NemesisEvent event,
      NemesisApprovalType approval,
      Integer value,
      boolean trySubmit,
      String comment) {
    try {
      BifrostSSHConnection serverLink = getConnection();

      Integer changeNumber = event.getChangeRequest().getChangeNumber();
      Integer patchSetNumber = event.getPatchSet().getPatchSetNumber();
      String approvalOption;

      switch (approval) {
        case CODE_REVIEW:
          approvalOption = "--code-review";
          break;
        case VERIFIED:
          approvalOption = "--verified";
          break;
        case WORKFLOW:
          approvalOption = "--workflow";
          break;
        default:
          approvalOption = "";
          break;
      }

      String approvalCommand = "gerrit review";
      approvalCommand += " " + changeNumber + "," + patchSetNumber;
      approvalCommand += " " + approvalOption + " " + value;
      approvalCommand += (comment != null) ? " --comment " + comment + " " : "";
      approvalCommand += (trySubmit) ? " --submit" : "";

      core.logInfo(
          "NemesisEvent: Voting "
              + approval.toString()
              + ": "
              + value
              + " for "
              + changeNumber
              + ","
              + patchSetNumber);

      serverLink.executeCommand(approvalCommand);
    } catch (IOException e) {
      core.logException(e);
    }
  }
 public void handleEvent(NemesisEvent event) {
   core.logInfo("NemesisEvent: " + event.toString());
   for (NemesisEventHandler handler : eventHandlers) {
     handler.handleEvent(event);
   }
 }