package com.smartcodeltd.jenkinsci.plugins.buildmonitor;
import com.google.common.base.Objects;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor.order.ByName;
import hudson.model.Job;
import java.util.Comparator;
import static com.smartcodeltd.jenkinsci.plugins.buildmonitor.functions.NullSafety.getOrElse;
public class Config {
private boolean displayCommitters;
public static Config defaultConfig() {
return new Config();
}
public Comparator<Job<?, ?>> getOrder() {
/*
* Jenkins unmarshals objects from config.xml by setting their private fields directly and without invoking their constructors.
* In order to retrieve a potentially already persisted field try to first get the field, if that didn't work - use defaults.
*
* This is defensive coding to avoid issues such as this one:
* https://github.com/jan-molak/jenkins-build-monitor-plugin/issues/43
*/
return getOrElse(order, new ByName());
}
public void setOrder(Comparator<Job<?, ?>> order) {
this.order = order;
}
public boolean shouldDisplayCommitters() {
return getOrElse(displayCommitters, true);
}
public void setDisplayCommitters(boolean flag) {
this.displayCommitters = flag;
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("order", order.getClass().getSimpleName())
.toString();
}
// --
private Comparator<Job<?, ?>> order;
}