package org.netmelody.cieye.spies.jenkins.jsondomain; import java.util.ArrayList; import java.util.List; import org.netmelody.cieye.core.domain.Status; public final class BuildDetail extends Build { public String description; public boolean building; public long duration; public String fullDisplayName; public String id; public boolean keepLog; public String result; public long timestamp; public String builtOn; public List<User> culprits; public List<Action> actions; public ChangeSet changeSet; //artifacts public List<String> upstreamBuildUrls() { final List<String> result = new ArrayList<String>(); for (Action action : actions()) { if (null != action) { result.addAll(action.upstreamBuildUrls()); } } return result; } public Status status() { if (!building) { return ("SUCCESS".equals(result)) ? Status.GREEN : Status.BROKEN; } for (Action action : actions()) { if (null != action) { if (action.failCount > 0) { return Status.BROKEN; } } } return Status.UNKNOWN; } public List<User> culprits() { return (null == culprits) ? new ArrayList<User>() : culprits; } public List<Action> actions() { return (null == actions) ? new ArrayList<Action>() : actions; } }