package com.youdevise.hudson.slavestatus;
public class Daemon {
public enum RunResult {CONTINUE, ABORT};
public enum RunType {ONCE_ONLY, FOREVER};
private final DaemonRunner daemonRunner;
public Daemon(DaemonRunner daemonRunner) {
this.daemonRunner = daemonRunner;
}
public RunResult go(RunType runType) {
RunResult result;
do {
result = daemonRunner.run();
} while (RunType.FOREVER == runType && RunResult.CONTINUE == result);
return result;
}
}
interface DaemonRunner {
Daemon.RunResult run();
}