package nl.topicus.onderwijs.dashboard.modules.topicus; import java.io.Serializable; import java.io.StringWriter; import java.util.Date; import nl.topicus.onderwijs.dashboard.datatypes.DotColor; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; public class TopicusServerStatus implements Serializable { private static final long serialVersionUID = 1L; private Date lastCheckTime; private String version; private int numberOfUsers; private int numberOfErrors; private long uptime; private DotColor serverStatus; private Integer requestsPerMinute; private Integer averageRequestDuration; private String url; private String code; public TopicusServerStatus(String code, String url) { this.code = code; this.url = url; } public Date getTime() { return lastCheckTime; } public void setTime(Date time) { this.lastCheckTime = time; } public String getVersion() { return version == null ? "n/a" : version; } public void setVersion(String version) { this.version = version; } public int getNumberOfUsers() { return numberOfUsers; } public void setNumberOfUsers(int numberOfUsers) { this.numberOfUsers = numberOfUsers; } public int getNumberOfErrors() { return numberOfErrors; } public void setNumberOfErrors(int numberOfErrors) { this.numberOfErrors = numberOfErrors; } public Integer getAverageRequestDuration() { return averageRequestDuration; } public void setAverageRequestDuration(int averageRequestDuration) { this.averageRequestDuration = averageRequestDuration; } public Integer getRequestsPerMinute() { return requestsPerMinute; } public void setRequestsPerMinute(Integer requestsPerMinute) { this.requestsPerMinute = requestsPerMinute; } public Long getUptime() { return uptime; } public void setUptime(Long uptime) { this.uptime = uptime; } public DotColor getServerStatus() { return serverStatus; } public void setServerStatus(DotColor serverStatus) { this.serverStatus = serverStatus; } public String getCode() { return code; } public String getUrl() { return url; } public boolean isOnline() { return getServerStatus() == DotColor.GREEN; } @Override public String toString() { ObjectMapper mapper = new ObjectMapper(); StringWriter sw = new StringWriter(); try { SerializationConfig config = mapper.getSerializationConfig(); config.setSerializationInclusion(Inclusion.NON_NULL); mapper.writeValue(sw, this); } catch (Exception e) { e.printStackTrace(); } return sw.toString(); } }