package rocks.inspectit.shared.all.communication.data; import rocks.inspectit.shared.all.cmr.cache.IObjectSizes; /** * Data class for logging data capturing. * * @author Stefan Siegl */ public class LoggingData extends InvocationAwareData { /** Serial version id. */ private static final long serialVersionUID = 6428356462914363539L; /** The logging level. */ private String level; /** The message that was logged. */ private String message; /** * Default constructor. */ public LoggingData() { super(); } /** * Constructor. * * @param level * the logging level/severity. * @param message * the message. */ public LoggingData(String level, String message) { super(); this.level = level; this.message = message; } /** * {@inheritDoc} */ @Override public double getInvocationAffiliationPercentage() { return 1.0d; } /** * Gets {@link #level}. * * @return {@link #level} */ public String getLevel() { return level; } /** * Sets {@link #level}. * * @param level * New value for {@link #level} */ public void setLevel(String level) { this.level = level; } /** * Gets {@link #message}. * * @return {@link #message} */ public String getMessage() { return message; } /** * Sets {@link #message}. * * @param message * New value for {@link #message} */ public void setMessage(String message) { this.message = message; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = (prime * result) + ((level == null) ? 0 : level.hashCode()); result = (prime * result) + ((message == null) ? 0 : message.hashCode()); return result; } /** * {@inheritDoc} */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!super.equals(obj)) { return false; } if (getClass() != obj.getClass()) { return false; } LoggingData other = (LoggingData) obj; if (level == null) { if (other.level != null) { return false; } } else if (!level.equals(other.level)) { return false; } if (message == null) { if (other.message != null) { return false; } } else if (!message.equals(other.message)) { return false; } return true; } /** * {@inheritDoc} */ @Override public String toString() { return "LoggingData [level=" + level + ", message=" + message + "]"; } /** * {@inheritDoc} */ @Override public long getObjectSize(IObjectSizes objectSizes, boolean doAlign) { long size = super.getObjectSize(objectSizes, doAlign); size += objectSizes.getPrimitiveTypesSize(3, 0, 0, 0, 0, 1); size += objectSizes.getSizeOf(message); size += objectSizes.getSizeOf(level); if (doAlign) { return objectSizes.alignTo8Bytes(size); } else { return size; } } }