/** * Sub-classes may override this to determine whether the breakpoint is supported by the selection. * * @param ss the selection of the debug elements. * @param breakpoint the breakpoint. * @return true if supported. */ protected boolean supportsBreakpoint(IStructuredSelection ss, IBreakpoint breakpoint) { return supportsBreakpoint(getDebugTargets(ss), breakpoint); }
/** * Sub-classes may override this method to filter the breakpoints. * * @param input the breakpoint manager input. * @param selectionFilter the selection to use as filter * @param breakpoints the list of breakpoint to filter. * @return the filtered list of breakpoint based on the input. */ protected IBreakpoint[] filterBreakpoints(DefaultBreakpointsViewInput input, IStructuredSelection selectionFilter, IBreakpoint[] breakpoints) { if (selectionFilter != null && !selectionFilter.isEmpty()) { List<IDebugTarget> targets = getDebugTargets(selectionFilter); ArrayList<IBreakpoint> retVal = new ArrayList<>(); if (targets != null) { for (int i = 0; i < breakpoints.length; ++i) { if (supportsBreakpoint(targets, breakpoints[i])) { retVal.add(breakpoints[i]); } } } return retVal.toArray(new IBreakpoint[retVal.size()]); } else { return breakpoints; } }
boolean[] supportedBreakpoints = new boolean[allBreakpoints.length]; for (int i = 0; i < allBreakpoints.length; ++i) { supportedBreakpoints[i] = supportsBreakpoint(ss, allBreakpoints[i]);