@NotNull
  public <T extends XBreakpointProperties> XLineBreakpoint<T> addLineBreakpoint(final XLineBreakpointType<T> type,
                                                                                @NotNull final String fileUrl,
                                                                                final int line,
                                                                                @Nullable final T properties,
                                                                                boolean temporary,
                                                                                boolean initUI) {
    return withLockMaybeCancellable(myLock, () -> {
      LineBreakpointState<T> state = new LineBreakpointState<>(true, type.getId(), fileUrl, line, temporary,
                                                               ++myTime, type.getDefaultSuspendPolicy());
      getBreakpointDefaults(type).applyDefaults(state);
      state.setGroup(myDefaultGroup);
      XLineBreakpointImpl<T> breakpoint = new XLineBreakpointImpl<>(type, this, properties,
                                                                    state);
      addBreakpoint(breakpoint, false, initUI);
      return breakpoint;
    });
  }
@NotNull
  public <T extends XBreakpointProperties> XLineBreakpoint<T> addLineBreakpoint(final XLineBreakpointType<T> type,
                                                                                @NotNull final String fileUrl,
                                                                                final int line,
                                                                                @Nullable final T properties,
                                                                                boolean temporary,
                                                                                boolean initUI)