package ee.elinyo.teamcity.plugins.ansible.logparser; import ee.elinyo.teamcity.plugins.ansible.logparser.domain.HostResult; import ee.elinyo.teamcity.plugins.ansible.logparser.domain.Play; import ee.elinyo.teamcity.plugins.ansible.logparser.domain.Task; import ee.elinyo.teamcity.plugins.ansible.logparser.domain.VerboseMessage; public class TaskContext extends LogProcessingContext { private final Task currentTask; public TaskContext(Task task, Play play) { this.currentTask = task; play.getTasks().add(task); } @Override public void process(String line) { if (AnsibleLogUtils.isVerboseMsg(line)) { currentTask.getVerbose().add(VerboseMessage.fromOutputLine(line)); return; } HostResult hr = HostResult.fromOutputLine(line); if (hr != null) { currentTask.getHosts().add(hr); } else if (!currentTask.getHosts().isEmpty()) { currentTask.getHosts().get(currentTask.getHosts().size() - 1).getDetails().add(line); } } }