package com.smartcodeltd.jenkinsci.plugins.buildmonitor.order; import hudson.model.Job; import java.util.Comparator; /** * Inspired by <a href="https://github.com/Mercynary">@Mercenary</a>'s answer to * issue <a href="https://github.com/jan-molak/jenkins-build-monitor-plugin/issues/113">#113</a>. */ public class ByLastBuildTime implements Comparator<Job<?, ?>> { @Override public int compare(Job<?, ?> a, Job<?, ?> b) { // none of them executed if (a.getLastBuild() == null && b.getLastBuild() == null) { return 0; } // only job B executed, so job A is older than job B if (a.getLastBuild() == null && b.getLastBuild() != null) { return 1; } // only job A executed, so job A is newer than Job B if (a.getLastBuild() != null && b.getLastBuild() == null) { return -1; } // "New is always better" - B. Stinson ;-) return b.getLastBuild().getTimestamp().compareTo(a.getLastBuild().getTimestamp()); } }