/**
  * Disables a line breakpoint
  *
  * @param file
  * @param line
  */
 @Override
 public void disableBreakpoint(File file, int line) {
   BumpBreakpoint bp = findBreakpoint(file, line);
   if (bp != null) {
     bump_client.editBreakpoint(bp.getBreakId(), "ENABLE", "FALSE");
   }
 }
 /**
  * Disables all breakpoints in the given file
  *
  * @param file
  */
 @Override
 public void disableAllBreakpoints(File file) {
   Iterator<BumpBreakpoint> it = bump_client.getAllBreakpoints().iterator();
   while (it.hasNext()) {
     BumpBreakpoint bp = it.next();
     if (file == null || (bp.getFile() != null && bp.getFile().equals(file)))
       disableBreakpoint(bp.getFile(), bp.getLineNumber());
   }
 }
  /**
   * Finds the breakpoint at the given file and line
   *
   * @param file
   * @param line
   * @return the breakpoint
   */
  @Override
  public BumpBreakpoint findBreakpoint(File file, int line) {
    for (BumpBreakpoint bb : bump_client.getBreakpoints(file)) {
      int lno = bb.getIntProperty("LINE");
      if (lno == line) {
        return bb;
      }
    }

    return null;
  }
  /**
   * Toggle a line breakpoint for the given file. If a line breakpoint already exists at this line
   * it is removed; otherwise a new breakpoint is created with the current default settings.
   */
  @Override
  public void toggleBreakpoint(String proj, File file, int line, BumpBreakMode mode) {
    if (line == 0 || file == null) return;

    String cls = null;

    boolean fnd = false;
    for (BumpBreakpoint bb : bump_client.getBreakpoints(file)) {
      int lno = bb.getIntProperty("LINE");
      if (lno == line) {
        cls = bb.getProperty("CLASS");
        fnd = true;
      }
    }

    if (fnd) clearLineBreakpoint(proj, file, cls, line);
    else addLineBreakpoint(proj, file, cls, line, mode);
  }