View Javadoc
1   package org.kuali.common.devops.jenkins.file;
2   
3   import java.io.File;
4   
5   import javax.validation.constraints.Min;
6   
7   import org.kuali.common.core.build.ValidatingBuilder;
8   import org.kuali.common.core.validate.annotation.IdiotProofImmutable;
9   
10  @IdiotProofImmutable
11  public final class JenkinsJob {
12  
13  	private final String name;
14  	private final File dir;
15  
16  	@Min(1)
17  	private final int nextBuildNumber;
18  
19  	@Min(0)
20  	private final int retainedBuilds;
21  
22  	private JenkinsJob(Builder builder) {
23  		this.dir = builder.dir;
24  		this.nextBuildNumber = builder.nextBuildNumber;
25  		this.name = builder.name;
26  		this.retainedBuilds = builder.retainedBuilds;
27  	}
28  
29  	public static Builder builder() {
30  		return new Builder();
31  	}
32  
33  	public static class Builder extends ValidatingBuilder<JenkinsJob> {
34  
35  		private String name;
36  		private File dir;
37  		private int nextBuildNumber;
38  		private int retainedBuilds;
39  
40  		public Builder withRetainedBuilds(int retainedBuilds) {
41  			this.retainedBuilds = retainedBuilds;
42  			return this;
43  		}
44  
45  		public Builder withName(String name) {
46  			this.name = name;
47  			return this;
48  		}
49  
50  		public Builder withDir(File dir) {
51  			this.dir = dir;
52  			return this;
53  		}
54  
55  		public Builder withNextBuildNumber(int nextBuildNumber) {
56  			this.nextBuildNumber = nextBuildNumber;
57  			return this;
58  		}
59  
60  		@Override
61  		public JenkinsJob build() {
62  			return validate(new JenkinsJob(this));
63  		}
64  	}
65  
66  	public File getDir() {
67  		return dir;
68  	}
69  
70  	public int getNextBuildNumber() {
71  		return nextBuildNumber;
72  	}
73  
74  	public String getName() {
75  		return name;
76  	}
77  
78  	public int getRetainedBuilds() {
79  		return retainedBuilds;
80  	}
81  
82  }