View Javadoc
1   package org.kuali.common.devops.jenkins.updates.model;
2   
3   import static com.google.common.collect.Maps.newHashMap;
4   
5   import java.util.Map;
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.ImmutableMap;
12  
13  @IdiotProofImmutable
14  @JsonDeserialize(builder = JenkinsUpdateCenter.Builder.class)
15  public final class JenkinsUpdateCenter {
16  
17  	private final String id;
18  	private final String connectionCheckUrl;
19  	private final JenkinsCore core;
20  	private final JenkinsSignature signature;
21  	private final ImmutableMap<String, JenkinsPlugin> plugins;
22  
23  	private JenkinsUpdateCenter(Builder builder) {
24  		this.id = builder.id;
25  		this.connectionCheckUrl = builder.connectionCheckUrl;
26  		this.core = builder.core;
27  		this.signature = builder.signature;
28  		this.plugins = ImmutableMap.copyOf(builder.plugins);
29  	}
30  
31  	public static Builder builder() {
32  		return new Builder();
33  	}
34  
35  	public static class Builder extends ValidatingBuilder<JenkinsUpdateCenter> {
36  
37  		private String id;
38  		private String connectionCheckUrl;
39  		private JenkinsCore core;
40  		private JenkinsSignature signature;
41  		private Map<String, JenkinsPlugin> plugins = newHashMap();
42  
43  		public Builder withId(String id) {
44  			this.id = id;
45  			return this;
46  		}
47  
48  		public Builder withConnectionCheckUrl(String connectionCheckUrl) {
49  			this.connectionCheckUrl = connectionCheckUrl;
50  			return this;
51  		}
52  
53  		public Builder withCore(JenkinsCore core) {
54  			this.core = core;
55  			return this;
56  		}
57  
58  		public Builder withSignature(JenkinsSignature signature) {
59  			this.signature = signature;
60  			return this;
61  		}
62  
63  		public Builder withPlugins(Map<String, JenkinsPlugin> plugins) {
64  			this.plugins = plugins;
65  			return this;
66  		}
67  
68  		@Override
69  		public JenkinsUpdateCenter build() {
70  			return validate(new JenkinsUpdateCenter(this));
71  		}
72  	}
73  
74  	public String getId() {
75  		return id;
76  	}
77  
78  	public String getConnectionCheckUrl() {
79  		return connectionCheckUrl;
80  	}
81  
82  	public JenkinsCore getCore() {
83  		return core;
84  	}
85  
86  	public JenkinsSignature getSignature() {
87  		return signature;
88  	}
89  
90  	public Map<String, JenkinsPlugin> getPlugins() {
91  		return plugins;
92  	}
93  
94  }