@Override public boolean isEmpty() { return !iterator().hasNext(); }
public R getLastBuild() { Iterator<R> itr = iterator(); return itr.hasNext() ? itr.next() : null; }
/** * @deprecated as of 1.485 * {@link RunList}, despite its name, should be really used as {@link Iterable}, not as {@link List}. */ @Override @Deprecated public R get(int index) { return Iterators.get(iterator(),index); }
/** * {@link AbstractList#subList(int, int)} isn't very efficient on our {@link Iterable} based implementation. * In fact the range check alone would require us to iterate all the elements, * so we'd be better off just copying into ArrayList. */ @Override public List<R> subList(int fromIndex, int toIndex) { List<R> r = new ArrayList<R>(); Iterator<R> itr = iterator(); hudson.util.Iterators.skip(itr, fromIndex); for (int i=toIndex-fromIndex; i>0; i--) { r.add(itr.next()); } return r; }
@Override public boolean isEmpty() { return !iterator().hasNext(); }
public R getLastBuild() { Iterator<R> itr = iterator(); return itr.hasNext() ? itr.next() : null; }
/** * Filter the list to builds on a single node only */ public RunList<R> node(Node node) { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if (!(r instanceof AbstractBuild) || ((AbstractBuild)r).getBuiltOn()!=node) { itr.remove(); } } return this; }
/** * Filter the list to regression builds only. */ public RunList<R> regressionOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if(!r.getBuildStatusSummary().isWorse) itr.remove(); } return this; }
/** * Filter the list to regression builds only. */ public RunList<R> regressionOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if(!r.getBuildStatusSummary().isWorse) itr.remove(); } return this; }
/** * Filter the list to regression builds only. */ public RunList<R> regressionOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if(!r.getBuildStatusSummary().isWorse) itr.remove(); } return this; }
/** * Filter the list to non-successful builds only. */ public RunList<R> failureOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if(r.getResult()==Result.SUCCESS) itr.remove(); } return this; }
/** * Filter the list to non-successful builds only. */ public RunList<R> failureOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if(r.getResult()==Result.SUCCESS) itr.remove(); } return this; }
/** * Filter the list to builds on a single node only */ public RunList<R> node(Node node) { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if (!(r instanceof AbstractBuild) || ((AbstractBuild)r).getBuiltOn()!=node) { itr.remove(); } } return this; }
/** * Filter the list to builds on a single node only */ public RunList<R> node(Node node) { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if (!(r instanceof AbstractBuild) || ((AbstractBuild)r).getBuiltOn()!=node) { itr.remove(); } } return this; }
/** * Filter the list to builds on a single node only */ @Override public RunList<R> node(Node node) { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if (!(r instanceof AbstractBuild) || ((AbstractBuild) r).getBuiltOn() != node) { itr.remove(); } } return this; }
/** * @deprecated as of 1.485 * {@link RunList}, despite its name, should be really used as {@link Iterable}, not as {@link List}. */ @Override @Deprecated public R get(int index) { return Iterators.get(iterator(),index); }
/** * Filter the list to non-successful builds only. */ @Override public RunList<R> failureOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if (r.getResult() == Result.SUCCESS) { itr.remove(); } } return this; }
@Nonnull @Override Iterator<Run> getRuns(Job job) { return new Iterators.FilterIterator<Run>(job.getBuilds().iterator()) { @Override protected boolean filter(Run run) { final Result result = run.getResult(); return result != null && PluginImpl.needToAnalyze(result); } }; } }
/** * Filter the list to regression builds only. */ @Override public RunList<R> regressionOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if (!r.getBuildStatusSummary().isWorse) { itr.remove(); } } return this; }
/** * Filter the list to non-successful builds only. */ public RunList<R> failureOnly() { for (Iterator<R> itr = iterator(); itr.hasNext();) { Run r = itr.next(); if(r.getResult()==Result.SUCCESS) itr.remove(); } return this; }