package rocks.inspectit.shared.all.communication.data.cmr; import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; import rocks.inspectit.shared.all.communication.DefaultData; import rocks.inspectit.shared.all.externalservice.ExternalServiceStatus; import rocks.inspectit.shared.all.externalservice.ExternalServiceType; /** * Class that hold all information about a CMR status. * * @author Ivan Senic * */ public class CmrStatusData implements Serializable { /** * generated UID. */ private static final long serialVersionUID = 126245907015200153L; /** * Current buffer occupancy in bytes. */ private long currentBufferSize; /** * Maximum buffer occupancy in bytes. */ private long maxBufferSize; /** * Oldest element in buffer. */ private DefaultData bufferOldestElement; /** * Newest element in the buffer. */ private DefaultData bufferNewestElement; /** * Amount of bytes that has left for storage data. */ private long storageDataSpaceLeft; /** * Amount of maximum bytes storage space that can be occupied. */ private long storageMaxDataSpace; /** * If warning about low storage data space is active. */ private boolean warnSpaceLeftActive; /** * If CMR has enough space to continue writing data. */ private boolean canWriteMore; /** * Running time of CMR in millis. */ private long upTime; /** * Date CMR was started. */ private Date dateStarted; /** * Size of the database, <code>null</code> represents no information available. */ private Long databaseSize; /** * The connection status of external services. */ private final Map<ExternalServiceType, ExternalServiceStatus> externalServiceStatusMap = new HashMap<ExternalServiceType, ExternalServiceStatus>(0); /** * Gets {@link #externalServiceStatusMap}. * * @return {@link #externalServiceStatusMap} */ public Map<ExternalServiceType, ExternalServiceStatus> getExternalServiceStatusMap() { return this.externalServiceStatusMap; } /** * Gets {@link #currentBufferSize}. * * @return {@link #currentBufferSize} */ public long getCurrentBufferSize() { return currentBufferSize; } /** * Sets {@link #currentBufferSize}. * * @param currentBufferSize * New value for {@link #currentBufferSize} */ public void setCurrentBufferSize(long currentBufferSize) { this.currentBufferSize = currentBufferSize; } /** * Gets {@link #maxBufferSize}. * * @return {@link #maxBufferSize} */ public long getMaxBufferSize() { return maxBufferSize; } /** * Sets {@link #maxBufferSize}. * * @param maxBufferSize * New value for {@link #maxBufferSize} */ public void setMaxBufferSize(long maxBufferSize) { this.maxBufferSize = maxBufferSize; } /** * Gets {@link #bufferOldestElement}. * * @return {@link #bufferOldestElement} */ public DefaultData getBufferOldestElement() { return bufferOldestElement; } /** * Sets {@link #bufferOldestElement}. * * @param bufferOldestElement * New value for {@link #bufferOldestElement} */ public void setBufferOldestElement(DefaultData bufferOldestElement) { this.bufferOldestElement = bufferOldestElement; } /** * Gets {@link #bufferNewestElement}. * * @return {@link #bufferNewestElement} */ public DefaultData getBufferNewestElement() { return bufferNewestElement; } /** * Sets {@link #bufferNewestElement}. * * @param bufferNewestElement * New value for {@link #bufferNewestElement} */ public void setBufferNewestElement(DefaultData bufferNewestElement) { this.bufferNewestElement = bufferNewestElement; } /** * Gets {@link #storageDataSpaceLeft}. * * @return {@link #storageDataSpaceLeft} */ public long getStorageDataSpaceLeft() { return storageDataSpaceLeft; } /** * Sets {@link #storageDataSpaceLeft}. * * @param storageDataSpaceLeft * New value for {@link #storageDataSpaceLeft} */ public void setStorageDataSpaceLeft(long storageDataSpaceLeft) { this.storageDataSpaceLeft = storageDataSpaceLeft; } /** * Gets {@link #storageMaxDataSpace}. * * @return {@link #storageMaxDataSpace} */ public long getStorageMaxDataSpace() { return storageMaxDataSpace; } /** * Sets {@link #storageMaxDataSpace}. * * @param storageMaxDataSpace * New value for {@link #storageMaxDataSpace} */ public void setStorageMaxDataSpace(long storageMaxDataSpace) { this.storageMaxDataSpace = storageMaxDataSpace; } /** * Gets {@link #warnSpaceLeftActive}. * * @return {@link #warnSpaceLeftActive} */ public boolean isWarnSpaceLeftActive() { return warnSpaceLeftActive; } /** * Sets {@link #warnSpaceLeftActive}. * * @param warnSpaceLeftActive * New value for {@link #warnSpaceLeftActive} */ public void setWarnSpaceLeftActive(boolean warnSpaceLeftActive) { this.warnSpaceLeftActive = warnSpaceLeftActive; } /** * Gets {@link #canWriteMore}. * * @return {@link #canWriteMore} */ public boolean isCanWriteMore() { return canWriteMore; } /** * Sets {@link #canWriteMore}. * * @param canWriteMore * New value for {@link #canWriteMore} */ public void setCanWriteMore(boolean canWriteMore) { this.canWriteMore = canWriteMore; } /** * Gets {@link #upTime}. * * @return {@link #upTime} */ public long getUpTime() { return upTime; } /** * Sets {@link #upTime}. * * @param upTime * New value for {@link #upTime} */ public void setUpTime(long upTime) { this.upTime = upTime; } /** * Gets {@link #dateStarted}. * * @return {@link #dateStarted} */ public Date getDateStarted() { return dateStarted; } /** * Sets {@link #dateStarted}. * * @param dateStarted * New value for {@link #dateStarted} */ public void setDateStarted(Date dateStarted) { this.dateStarted = dateStarted; } /** * Gets {@link #databaseSize}. * * @return {@link #databaseSize} */ public Long getDatabaseSize() { return databaseSize; } /** * Sets {@link #databaseSize}. * * @param databaseSize * New value for {@link #databaseSize} */ public void setDatabaseSize(Long databaseSize) { this.databaseSize = databaseSize; } /** * {@inheritDoc} */ @Override public int hashCode() { final int prime = 31; int result = 1; result = (prime * result) + ((bufferNewestElement == null) ? 0 : bufferNewestElement.hashCode()); result = (prime * result) + ((bufferOldestElement == null) ? 0 : bufferOldestElement.hashCode()); result = (prime * result) + (canWriteMore ? 1231 : 1237); result = (prime * result) + (int) (currentBufferSize ^ (currentBufferSize >>> 32)); result = (prime * result) + ((databaseSize == null) ? 0 : databaseSize.hashCode()); result = (prime * result) + ((dateStarted == null) ? 0 : dateStarted.hashCode()); result = (prime * result) + (int) (maxBufferSize ^ (maxBufferSize >>> 32)); result = (prime * result) + (int) (storageDataSpaceLeft ^ (storageDataSpaceLeft >>> 32)); result = (prime * result) + (int) (storageMaxDataSpace ^ (storageMaxDataSpace >>> 32)); result = (prime * result) + (int) (upTime ^ (upTime >>> 32)); result = (prime * result) + (warnSpaceLeftActive ? 1231 : 1237); return result; } /** * {@inheritDoc} */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } CmrStatusData other = (CmrStatusData) obj; if (bufferNewestElement == null) { if (other.bufferNewestElement != null) { return false; } } else if (!bufferNewestElement.equals(other.bufferNewestElement)) { return false; } if (bufferOldestElement == null) { if (other.bufferOldestElement != null) { return false; } } else if (!bufferOldestElement.equals(other.bufferOldestElement)) { return false; } if (canWriteMore != other.canWriteMore) { return false; } if (currentBufferSize != other.currentBufferSize) { return false; } if (databaseSize == null) { if (other.databaseSize != null) { return false; } } else if (!databaseSize.equals(other.databaseSize)) { return false; } if (dateStarted == null) { if (other.dateStarted != null) { return false; } } else if (!dateStarted.equals(other.dateStarted)) { return false; } if (maxBufferSize != other.maxBufferSize) { return false; } if (storageDataSpaceLeft != other.storageDataSpaceLeft) { return false; } if (storageMaxDataSpace != other.storageMaxDataSpace) { return false; } if (upTime != other.upTime) { return false; } if (warnSpaceLeftActive != other.warnSpaceLeftActive) { return false; } return true; } }