@Override public boolean hasNext() { if (last != null && count >= last) return false; if (!jobRefIterator.hasNext()) this.jobRefIterator = getNextBatchIterator(); return this.jobRefIterator.hasNext(); }
/** * Iterator over jobs owned by the specified owner. * * @param subject * @param phases Show only these phases * @param after Only show jobs after this time * @param last Show the last <i>last</i> jobs, ordererd by startTime ascending * @return job iterator */ public Iterator<JobRef> iterator(Subject subject, String appname, List<ExecutionPhase> phases, Date after, Integer last) throws TransientException, JobPersistenceException { Object owner = identManager.toOwner(subject); log.debug("iterator(" + owner + ")"); try { JobListIterator jobListIterator = new JobListIterator(jdbc, owner, appname, phases, after, last); prof.checkpoint("JobListStatementCreator"); return jobListIterator; } catch(Throwable t) { if (DBUtil.isTransientDBException(t)) throw new TransientException("failed to get job list for owner: " + owner, t); else throw new JobPersistenceException("failed to get job list for owner: " + owner, t); } }
JobListIterator(JdbcTemplate jdbc, Object owner, String appname, List<ExecutionPhase> phases, Date after, Integer last) { this.jdbcTemplate = jdbc; this.owner = owner; this.appname = appname; this.phases = phases; this.after = after; this.last = last; this.jobRefIterator = getNextBatchIterator(); }