package net.serenitybdd.integration.jenkins.process;
import org.jdeferred.Deferred;
import org.jdeferred.Promise;
import org.jdeferred.impl.DeferredObject;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class JenkinsLogLineWatcher {
private final Pattern pattern;
private final Deferred<Matcher, ?, ?> deferred = new DeferredObject();
public JenkinsLogLineWatcher(String pattern) {
this.pattern = Pattern.compile(pattern);
}
public boolean matches(String line) {
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
deferred.resolve(matcher);
return true;
}
return false;
}
public Promise<Matcher, ?, ?> promise() {
return deferred.promise();
}
}