package ee.elinyo.teamcity.plugins.ansible.logparser.domain;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Task {
private static final Pattern TASK_FIRST_LINE_PATTERN = Pattern
.compile("^(TASK|NOTIFIED):\\s+\\Q[\\E(.+)\\Q]\\E");
private long startedAt;
private long finishedAt;
private String name;
private boolean notified;
private int order;
private List<HostResult> hosts = new ArrayList<HostResult>();
private List<VerboseMessage> verbose = new ArrayList<VerboseMessage>();
public static Task fromOutputLine(String line, long startedAt) {
Matcher matcher = TASK_FIRST_LINE_PATTERN.matcher(line);
Task t = null;
if (matcher.find()) {
t = new Task();
t.setNotified("NOTIFIED".equals(matcher.group(1)));
t.startedAt = startedAt;
t.setName(matcher.group(2));
}
return t;
}
public long getStartedAt() {
return startedAt;
}
public void setStartedAt(long startedAt) {
this.startedAt = startedAt;
}
public long getFinishedAt() {
return finishedAt;
}
public void setFinishedAt(long finishedAt) {
this.finishedAt = finishedAt;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isNotified() {
return notified;
}
public void setNotified(boolean notified) {
this.notified = notified;
}
public List<HostResult> getHosts() {
return hosts;
}
public void setHosts(List<HostResult> hosts) {
this.hosts = hosts;
}
public List<VerboseMessage> getVerbose() {
return verbose;
}
public void setVerbose(List<VerboseMessage> verbose) {
this.verbose = verbose;
}
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
}