package de.is24.util.monitoring;
import java.util.Date;
/**
* Represents a single Value of a historizable entity.
* Historizables are used to report the state of entities or values who
* are not directly comparable between each other.<br><br>
*
* For example the total runtime of an EmailSender run will differ
* between a mailing with 4 emails and a mailing with 100000 emails.
* Thus using a {@link Timer} will not give reasonable results.
* A Historizable value may contain a String like:
* <pre> sending of 4 mails took 303 ms </pre>
*
* @author OSchmitz
*/
public interface Historizable {
/**
* This string represents whatever your applications wants to tell
* the rest of the world.
* @return the historized value, which can actually be any String
*/
String getValue();
/**
* name of this historizable
* @return name of this historizable
*/
String getName();
/**
* timestamp associated with this Historizable
* @return a Date instance
*/
Date getTimestamp();
}