@Override
  public int compareTo(XBreakpointGroup o) {
    if (getName().equals(o.getName())) {
      return 0;
    }
    if (o instanceof XBreakpointTypeGroup) {
      if (((XBreakpointTypeGroup)o).myBreakpointType instanceof XLineBreakpointType) {
        if (myBreakpointType instanceof XLineBreakpointType) {
          int res = ((XLineBreakpointType<?>)((XBreakpointTypeGroup)o).myBreakpointType).getPriority() -
                    ((XLineBreakpointType<?>)myBreakpointType).getPriority();
          if (res != 0) {
            return res;
          }
        }
        else {
          // line breakpoints should be on top
          return 1;
        }
      }
      else if (myBreakpointType instanceof XLineBreakpointType) {
        return -1;
      }
      return Long.compare(indexOfType(myBreakpointType), indexOfType(((XBreakpointTypeGroup)o).getBreakpointType()));
    }
    return -o.compareTo(this);
  }
@Override
  public int compareTo(XBreakpointGroup o)