package org.hyperic.hq.notifications; public class EndpointStatus { protected BasePostingStatus lastSuccessful; protected BasePostingStatus lastFailure; protected long size=0; public EndpointStatus() {} public EndpointStatus(BasePostingStatus lastSuccessful, BasePostingStatus lastFailure) { this.addLastFailure(lastFailure); this.addLastSuccessful(lastSuccessful); } public EndpointStatus(EndpointStatus other) { this(other.getLastSuccessful(),other.getLastFailure()); } public BasePostingStatus getLastSuccessful() { return this.lastSuccessful; } public BasePostingStatus getLastFailure() { return this.lastFailure; } public void addLastSuccessful(BasePostingStatus otherStatus) { if (otherStatus!=null && (this.lastSuccessful==null || this.lastSuccessful.getTime()<otherStatus.getTime())) { this.lastSuccessful=otherStatus; this.size++; } } public void addLastFailure(BasePostingStatus otherStatus) { if (otherStatus!=null && (this.lastFailure==null || this.lastFailure.getTime()<otherStatus.getTime())) { this.lastFailure=otherStatus; this.size++; } } public void add(BasePostingStatus status) { if (status==null) { return; } if (status.isSuccessful()) { addLastSuccessful(status); } else { addLastFailure(status); } } public long size() { return this.size; } public boolean isEmpty() { return this.size()==0; } public BasePostingStatus getLast() { BasePostingStatus lastFailure = this.getLastFailure(); BasePostingStatus lastSuccessful = this.getLastSuccessful(); if (lastFailure==null) { return lastSuccessful; } if (lastSuccessful==null) { return lastFailure; } return lastFailure.getTime()>lastSuccessful.getTime()?lastFailure:lastSuccessful; } public void merge(EndpointStatus other) { if (other==null) { return; } this.addLastFailure(other.getLastFailure()); this.addLastSuccessful(other.getLastSuccessful()); } }