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; }