View Javadoc
1   package org.kuali.common.devops.jenkins.updates.model;
2   
3   import org.kuali.common.core.build.ValidatingBuilder;
4   import org.kuali.common.core.validate.annotation.IdiotProofImmutable;
5   
6   import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
7   
8   @IdiotProofImmutable
9   @JsonDeserialize(builder = JenkinsPluginDependency.Builder.class)
10  public final class JenkinsPluginDependency {
11  
12  	private final String name;
13  	private final boolean optional;
14  	private final String version;
15  
16  	private JenkinsPluginDependency(Builder builder) {
17  		this.name = builder.name;
18  		this.optional = builder.optional;
19  		this.version = builder.version;
20  	}
21  
22  	public static Builder builder() {
23  		return new Builder();
24  	}
25  
26  	public static class Builder extends ValidatingBuilder<JenkinsPluginDependency> {
27  
28  		private String name;
29  		private boolean optional;
30  		private String version;
31  
32  		public Builder withName(String name) {
33  			this.name = name;
34  			return this;
35  		}
36  
37  		public Builder withOptional(boolean optional) {
38  			this.optional = optional;
39  			return this;
40  		}
41  
42  		public Builder withVersion(String version) {
43  			this.version = version;
44  			return this;
45  		}
46  
47  		@Override
48  		public JenkinsPluginDependency build() {
49  			return validate(new JenkinsPluginDependency(this));
50  		}
51  	}
52  
53  	public String getName() {
54  		return name;
55  	}
56  
57  	public boolean isOptional() {
58  		return optional;
59  	}
60  
61  	public String getVersion() {
62  		return version;
63  	}
64  
65  }