1 package org.kuali.common.devops.archive.sweep.jenkins.s3; 2 3 import org.kuali.common.aws.s3.model.ObjectMetadata; 4 import org.kuali.common.aws.s3.model.ObjectSummary; 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 10 @IdiotProofImmutable 11 @JsonDeserialize(builder = S3ObjectPair.Builder.class) 12 public final class S3ObjectPair { 13 14 private final ObjectSummary summary; 15 private final ObjectMetadata metadata; 16 17 private S3ObjectPair(Builder builder) { 18 this.summary = builder.summary; 19 this.metadata = builder.metadata; 20 } 21 22 public static Builder builder() { 23 return new Builder(); 24 } 25 26 public static class Builder extends ValidatingBuilder<S3ObjectPair> { 27 28 private ObjectSummary summary; 29 private ObjectMetadata metadata; 30 31 public Builder withSummary(ObjectSummary summary) { 32 this.summary = summary; 33 return this; 34 } 35 36 public Builder withMetadata(ObjectMetadata metadata) { 37 this.metadata = metadata; 38 return this; 39 } 40 41 @Override 42 public S3ObjectPair build() { 43 return validate(new S3ObjectPair(this)); 44 } 45 } 46 47 public ObjectSummary getSummary() { 48 return summary; 49 } 50 51 public ObjectMetadata getMetadata() { 52 return metadata; 53 } 54 55 }