Skip to content

Instantly share code, notes, and snippets.

@TomMannson
Created August 28, 2019 07:22
Show Gist options
  • Save TomMannson/fe65bdd5afc99996021c461f607dcdb6 to your computer and use it in GitHub Desktop.
Save TomMannson/fe65bdd5afc99996021c461f607dcdb6 to your computer and use it in GitHub Desktop.
WaitForSomeChangeInEvent
public class WaitForConfig<T> implements IdlingResource {
private ResourceCallback resourceCallback;
private boolean idle;
private final T obj;
Check<T> checker = null;
private long timeOut;
public boolean success = false;
public WaitForConfig(T object, Check<T> checker, long durationTimeOut) {
this.obj = object;
this.checker = checker;
this.timeOut = System.currentTimeMillis() + durationTimeOut;
}
@Override
public String getName() {
return WaitForConfig.class.getSimpleName();
}
@Override
public boolean isIdleNow() {
if (checker.check(obj)) {
resourceCallback.onTransitionToIdle();
success = true;
return true;
}
if (System.currentTimeMillis() > timeOut) {
resourceCallback.onTransitionToIdle();
return true;
}
return false;
}
@Override
public void registerIdleTransitionCallback(ResourceCallback callback) {
resourceCallback = callback;
}
public interface Check<T_INNER> {
boolean check(T_INNER objectToCheck);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment