/* This code is part of Freenet. It is distributed under the GNU General * Public License, version 2 (or at your option any later version). See * http://www.gnu.org/ for further details of the GPL. */ package freenet.node.useralerts; import freenet.clients.fcp.FCPMessage; import freenet.support.HTMLNode; public interface UserAlert { /** * Can the user dismiss the alert? * If not, it persists until it is unregistered. */ public boolean userCanDismiss(); /** * Title of alert (must be short!). */ public String getTitle(); /** * Content of alert (plain text). */ public String getText(); /** * Content of alert (HTML). */ public HTMLNode getHTMLText(); /** * *Really* concise text of alert. Should be comfortably under a line even when translated * into a verbose language. Will link to the full details. */ public String getShortText(); /** * Priority class */ public short getPriorityClass(); /** * Is the alert valid right now? Suggested use is to synchronize on the * alert, then check this, then get the data. */ public boolean isValid(); public void isValid(boolean validity); public String dismissButtonText(); public boolean shouldUnregisterOnDismiss(); /** * Method to be called upon alert dismissal */ public void onDismiss(); /** * @return A unique, short name for the alert. Can be simply hashCode(), not visible to the user. * MUST NOT contain spaces or commas. */ public String anchor(); /** * @return True if this is an event notification. Event notifications can be bulk deleted. * Eventually they will be handled differently - logged to a separate event log, and only * the last few displayed on the homepage. */ public boolean isEventNotification(); /** * @param The identifier of the subscription * @return A FCPMessage that is sent subscribing FCPClients */ public FCPMessage getFCPMessage(); /** * @return The Unix timestamp of when the alert was last updated */ public long getUpdatedTime(); /** An error which prevents normal operation */ public final static short CRITICAL_ERROR = 0; /** An error which prevents normal operation but might be temporary */ public final static short ERROR = 1; /** An error; limited anonymity due to not enough connections, for example */ public final static short WARNING = 2; /** Something minor */ public final static short MINOR = 3; }