public BreakpointBase createBreakpoint() {
    for (BreakpointUIComponent uiComponent : mUIComponents) {
      JTextField textField = uiComponent.getComponent();
      if (textField == null) continue;

      String text = textField.getText();
      try {
        Method method =
            mBreakpoint
                .getClass()
                .getMethod(uiComponent.getSetterName(), uiComponent.getParamType());
        if (uiComponent.getParamType().equals(int.class)) {
          method.invoke(mBreakpoint, Integer.parseInt(text));
        } else if (uiComponent.getParamType().equals(double.class)) {
          method.invoke(mBreakpoint, Double.parseDouble(text));
        } else {
          System.err.println("Error instantiate breakpoint with given parameters.");
          return null;
        }
      } catch (Exception e) {
        showError(e);
        return null;
      }
    }

    return mBreakpoint;
  }