1 package org.kuali.common.devops.jenkins.scan; 2 3 import java.util.List; 4 5 import org.kuali.common.core.build.ValidatingBuilder; 6 import org.kuali.common.core.validate.annotation.IdiotProofImmutable; 7 8 import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 9 import com.google.common.collect.ImmutableList; 10 11 @IdiotProofImmutable 12 @JsonDeserialize(builder = JobDurationStatistics.Builder.class) 13 public final class JobDurationStatistics { 14 15 private final String name; 16 private final ImmutableList<Long> values; 17 private final SummaryStatistics summary; 18 19 private JobDurationStatistics(Builder builder) { 20 this.name = builder.name; 21 this.values = ImmutableList.copyOf(builder.values); 22 this.summary = builder.summary; 23 } 24 25 public static Builder builder() { 26 return new Builder(); 27 } 28 29 public static class Builder extends ValidatingBuilder<JobDurationStatistics> { 30 31 private String name; 32 private List<Long> values; 33 private SummaryStatistics summary; 34 35 public Builder withName(String name) { 36 this.name = name; 37 return this; 38 } 39 40 public Builder withValues(List<Long> values) { 41 this.values = values; 42 return this; 43 } 44 45 public Builder withSummary(SummaryStatistics summary) { 46 this.summary = summary; 47 return this; 48 } 49 50 @Override 51 public JobDurationStatistics build() { 52 return validate(new JobDurationStatistics(this)); 53 } 54 } 55 56 public String getName() { 57 return name; 58 } 59 60 public List<Long> getValues() { 61 return values; 62 } 63 64 public SummaryStatistics getSummary() { 65 return summary; 66 } 67 68 }