View Javadoc
1   package org.kuali.common.devops.jenkins.monitor.model;
2   
3   import javax.validation.constraints.Min;
4   
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 = JenkinsSlave.Builder.class)
12  public final class JenkinsSlave {
13  
14  	private final String displayName;
15  	private final String instanceId;
16  	private final boolean jenkinsOnline;
17  	private final boolean amazonOnline;
18  	@Min(0)
19  	private final long age;
20  
21  	private JenkinsSlave(Builder builder) {
22  		this.instanceId = builder.instanceId;
23  		this.displayName = builder.displayName;
24  		this.jenkinsOnline = builder.jenkinsOnline;
25  		this.amazonOnline = builder.amazonOnline;
26  		this.age = builder.age;
27  	}
28  
29  	public static Builder builder() {
30  		return new Builder();
31  	}
32  
33  	public static class Builder extends ValidatingBuilder<JenkinsSlave> {
34  
35  		private String instanceId;
36  		private boolean jenkinsOnline = false;
37  		private boolean amazonOnline = false;
38  		private long age = -1;
39  		private String displayName;
40  
41  		public Builder withDisplayName(String displayName) {
42  			this.displayName = displayName;
43  			return this;
44  		}
45  
46  		public Builder withInstanceId(String instanceId) {
47  			this.instanceId = instanceId;
48  			return this;
49  		}
50  
51  		public Builder withJenkinsOnline(boolean jenkinsOnline) {
52  			this.jenkinsOnline = jenkinsOnline;
53  			return this;
54  		}
55  
56  		public Builder withAmazonOnline(boolean amazonOnline) {
57  			this.amazonOnline = amazonOnline;
58  			return this;
59  		}
60  
61  		public Builder withAge(long age) {
62  			this.age = age;
63  			return this;
64  		}
65  
66  		@Override
67  		public JenkinsSlave build() {
68  			return validate(new JenkinsSlave(this));
69  		}
70  	}
71  
72  	public String getInstanceId() {
73  		return instanceId;
74  	}
75  
76  	public boolean isJenkinsOnline() {
77  		return jenkinsOnline;
78  	}
79  
80  	public boolean isAmazonOnline() {
81  		return amazonOnline;
82  	}
83  
84  	public long getAge() {
85  		return age;
86  	}
87  
88  	public String getDisplayName() {
89  		return displayName;
90  	}
91  }