/** * Checks if the schedule item is available to start working on it. Returns true if all the * schedule item parents are done. */ public boolean canProcess() { if (this.isStatusPending()) { Boolean anyParentNotFinished = false; for (ScheduleItem parent : this.getParents()) { if (parent == null) { throw new BIGSException("parent for schedule item " + this.getRowkey() + " not found"); } if (!parent.isStatusDone()) { anyParentNotFinished = true; break; } } return !anyParentNotFinished; } return false; }