1 package org.kuali.common.devops.archive.sweep.jenkins.s3; 2 3 import static com.google.common.collect.Lists.newArrayList; 4 5 import java.util.List; 6 7 import org.kuali.common.core.build.ValidatingBuilder; 8 import org.kuali.common.core.validate.annotation.IdiotProofImmutable; 9 10 import com.fasterxml.jackson.databind.annotation.JsonDeserialize; 11 import com.google.common.collect.ImmutableList; 12 13 @IdiotProofImmutable 14 @JsonDeserialize(builder = S3ObjectPairWrapper.Builder.class) 15 public final class S3ObjectPairWrapper { 16 17 private final ImmutableList<S3ObjectPair> pairs; 18 19 private S3ObjectPairWrapper(Builder builder) { 20 this.pairs = ImmutableList.copyOf(builder.pairs); 21 } 22 23 public static S3ObjectPairWrapper build(Iterable<S3ObjectPair> pairs) { 24 return builder().withPairs(newArrayList(pairs)).build(); 25 } 26 27 public static Builder builder() { 28 return new Builder(); 29 } 30 31 public static class Builder extends ValidatingBuilder<S3ObjectPairWrapper> { 32 33 private List<S3ObjectPair> pairs; 34 35 public Builder withPairs(List<S3ObjectPair> pairs) { 36 this.pairs = pairs; 37 return this; 38 } 39 40 @Override 41 public S3ObjectPairWrapper build() { 42 return validate(new S3ObjectPairWrapper(this)); 43 } 44 } 45 46 public List<S3ObjectPair> getPairs() { 47 return pairs; 48 } 49 50 }