org.apache.log.Priority Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.log;
import java.io.Serializable;
import java.io.ObjectStreamException;
/**
* Class representing and holding constants for priority.
*
* @author Peter Donald
*/
public final class Priority
implements Serializable
{
/**
* Developer orientated messages, usually used during development of product.
*/
public final static Priority DEBUG = new Priority( "DEBUG", 5 );
/**
* Useful information messages such as state changes, client connection, user login etc.
*/
public final static Priority INFO = new Priority( "INFO", 10 );
/**
* A problem or conflict has occurred but it may be recoverable, then
* again it could be the start of the system failing.
*/
public final static Priority WARN = new Priority( "WARN", 15 );
/**
* A problem has occurred but it is not fatal. The system will still function.
*/
public final static Priority ERROR = new Priority( "ERROR", 20 );
/**
* Something caused whole system to fail. This indicates that an administrator
* should restart the system and try to fix the problem that caused the failure.
*/
public final static Priority FATAL_ERROR = new Priority( "FATAL_ERROR", 25 );
private final String m_name;
private final int m_priority;
/**
* Retrieve a Priority object for the name parameter.
*
* @param priority the priority name
* @return the Priority for name
*/
public static Priority getPriorityForName( final String priority )
{
if( Priority.DEBUG.getName().equals( priority ) ) return Priority.DEBUG;
else if( Priority.INFO.getName().equals( priority ) ) return Priority.INFO;
else if( Priority.WARN.getName().equals( priority ) ) return Priority.WARN;
else if( Priority.ERROR.getName().equals( priority ) ) return Priority.ERROR;
else if( Priority.FATAL_ERROR.getName().equals( priority ) ) return Priority.FATAL_ERROR;
else return Priority.DEBUG;
}
/**
* Private Constructor to block instantiation outside class.
*
* @param name the string name of priority
* @param priority the numerical code of priority
*/
private Priority( final String name, final int priority )
{
m_name = name;
m_priority = priority;
}
/**
* Overidden string to display Priority in human readable form.
*
* @return the string describing priority
*/
public String toString()
{
return "Priority[" + getName() + "/" + getValue() + "]";
}
/**
* Get numerical value associated with priority.
*
* @return the numerical value
*/
public int getValue()
{
return m_priority;
}
/**
* Get name of priority.
*
* @return the priorities name
*/
public String getName()
{
return m_name;
}
/**
* Test whether this priority is greater than other priority.
*
* @param other the other Priority
*/
public boolean isGreater( final Priority other )
{
return m_priority > other.getValue();
}
/**
* Test whether this priority is lower than other priority.
*
* @param other the other Priority
*/
public boolean isLower( final Priority other )
{
return m_priority < other.getValue();
}
/**
* Test whether this priority is lower or equal to other priority.
*
* @param other the other Priority
*/
public boolean isLowerOrEqual( final Priority other )
{
return m_priority <= other.getValue();
}
/**
* Helper method that replaces deserialized object with correct singleton.
*
* @return the singleton version of object
* @exception ObjectStreamException if an error occurs
*/
private Object readResolve()
throws ObjectStreamException
{
return getPriorityForName( m_name );
}
}