View Javadoc
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.google.common.collect.ImmutableList;
11  
12  @IdiotProofImmutable
13  public final class JenkinsS3Job {
14  
15  	private final String name;
16  	private final S3ObjectPair pair;
17  	private final ImmutableList<JenkinsS3Build> builds;
18  
19  	private JenkinsS3Job(Builder builder) {
20  		this.name = builder.name;
21  		this.pair = builder.pair;
22  		this.builds = ImmutableList.copyOf(builder.builds);
23  	}
24  
25  	public static Builder builder() {
26  		return new Builder();
27  	}
28  
29  	public static class Builder extends ValidatingBuilder<JenkinsS3Job> {
30  
31  		private String name;
32  		private S3ObjectPair pair;
33  		private List<JenkinsS3Build> builds = newArrayList();
34  
35  		public Builder withName(String name) {
36  			this.name = name;
37  			return this;
38  		}
39  
40  		public Builder withPair(S3ObjectPair pair) {
41  			this.pair = pair;
42  			return this;
43  		}
44  
45  		public Builder withBuilds(List<JenkinsS3Build> builds) {
46  			this.builds = builds;
47  			return this;
48  		}
49  
50  		@Override
51  		public JenkinsS3Job build() {
52  			return validate(new JenkinsS3Job(this));
53  		}
54  	}
55  
56  	public String getName() {
57  		return name;
58  	}
59  
60  	public S3ObjectPair getPair() {
61  		return pair;
62  	}
63  
64  	public List<JenkinsS3Build> getBuilds() {
65  		return builds;
66  	}
67  
68  }