package com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel; import com.google.common.base.Optional; import com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.duration.Duration; import hudson.model.Action; import hudson.model.Result; import java.util.List; import java.util.Set; public interface BuildViewModel { String name(); String url(); Result result(); boolean isRunning(); Duration elapsedTime(); Duration timeElapsedSince(); Duration duration(); Duration estimatedDuration(); int progress(); String description(); boolean isPipeline(); List<String> pipelineStages(); boolean hasPreviousBuild(); BuildViewModel previousBuild(); Set<String> culprits(); Set<String> committers(); <A extends Action> Optional<A> detailsOf(Class<A> jenkinsAction); <A extends Action> List<A> allDetailsOf(Class<A> jenkinsAction); }