/** * @return breakpoints of one of the category: LINE_BREAKPOINTS, EXCEPTION_BREAKPOINTS, * FIELD_BREAKPOINTS, METHOD_BREAKPOINTS */ public <T extends Breakpoint> Breakpoint[] getBreakpoints(@NotNull final Key<T> category) { ApplicationManager.getApplication().assertIsDispatchThread(); removeInvalidBreakpoints(); final ArrayList<Breakpoint> breakpoints = new ArrayList<Breakpoint>(); for (Breakpoint breakpoint : getBreakpoints()) { if (category.equals(breakpoint.getCategory())) { breakpoints.add(breakpoint); } } return breakpoints.toArray(new Breakpoint[breakpoints.size()]); }
private void removeInvalidBreakpoints() { ArrayList<Breakpoint> toDelete = new ArrayList<Breakpoint>(); for (Breakpoint breakpoint : getBreakpoints()) { if (!breakpoint.isValid()) { toDelete.add(breakpoint); } } for (final Breakpoint aToDelete : toDelete) { removeBreakpoint(aToDelete); } }