/*
* Created on 1 Aug 2008
* Created by Allan Crooks
* Copyright (C) 2008 Vuze Inc., All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gudy.azureus2.plugins.logging;
/**
* A <tt>LogAlert</tt> represents a message that should be displayed to the
* user.
*
* <p><b>Note:</b> Only for implementation by Azureus, not plugins.</p>
*
* @since 3.1.1.1
*/
public interface LogAlert {
/**
* Log Type: Information
*/
public int LT_INFORMATION = 1;
/**
* Log Type: Warning
*/
public int LT_WARNING = 2;
/**
* Log Type: Error
*/
public int LT_ERROR = 3;
/**
* How long should to display the alert for - this will be the value that was given
* when creating the alert.
*
* @return How long to display the timeout for - <tt>-1</tt> for no explicit value,
* <tt>0</tt> to display it indefinitely, otherwise it is the number of seconds to
* display the value for.
*/
public int getGivenTimeoutSecs();
/**
* How long should to display the alert for - this will be either the explicit value
* given when creating the alert, or a value determined from Azureus's behaviour and
* its configuration settings.
*
* @return How long to display the timeout for - <tt>0</tt> to display it indefinitely,
* otherwise it is the number of seconds to display the value for.
*/
public int getTimeoutSecs();
/**
* Returns the text of the message - this may include formatting tags (for example,
* hyperlinks).
*
* @return The text to display.
*/
public String getText();
/**
* Returns the text of the message - this will have any formatting stripped out.
*
* @return The text to display.
*/
public String getPlainText();
/**
* Returns the error associated with the alert - <tt>null</tt> if there is no error.
*/
public Throwable getError();
/**
* Returns the log type of the alert - the value of which will be one of the <tt>LT_</tt>
* constants defined above.
*/
public int getType();
/**
* Returns the objects associated with the alert - this will return <tt>null</tt> if
* the alert isn't associated with such any objects.
*/
public Object[] getContext();
}