    001/*
    002 * Copyright 2001-2004 The Apache Software Foundation.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *      http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    013 * See the License for the specific language governing permissions and
    014 * limitations under the License.
    015 */
    016
    017// Contributors:  Kitching Simon <Simon.Kitching@orange.ch>
    018
    019package org.apache.log4j;
    020
    021// Contributors:  Kitching Simon <Simon.Kitching@OOOrange.ch>
    022
    023/**
    024   <font color="#AA4444">Refrain from using this class directly, use
    025   the {@link Level} class instead</font>.
    026
    027   @author Ceki G&uuml;lc&uuml; */
    028public class Priority {
    029
    030    transient int level;
    031    transient String levelStr;
    032    transient int syslogEquivalent;
    033
    034    public final static int OFF_INT = Integer.MAX_VALUE;
    035    public final static int FATAL_INT = 50000;
    036    public final static int ERROR_INT = 40000;
    037    public final static int WARN_INT = 30000;
    038    public final static int INFO_INT = 20000;
    039    public final static int DEBUG_INT = 10000;
    040    // public final static int FINE_INT = DEBUG_INT;
    041    public final static int ALL_INT = Integer.MIN_VALUE;
    042
    043    /**
    044     * @deprecated Use {@link Level#FATAL} instead.
    045     */
    046    final static public Priority FATAL = new Level(FATAL_INT, "FATAL", 0);
    047
    048    /**
    049     * @deprecated Use {@link Level#ERROR} instead.
    050     */
    051    final static public Priority ERROR = new Level(ERROR_INT, "ERROR", 3);
    052
    053    /**
    054     * @deprecated Use {@link Level#WARN} instead.
    055     */
    056    final static public Priority WARN = new Level(WARN_INT, "WARN", 4);
    057
    058    /**
    059     * @deprecated Use {@link Level#INFO} instead.
    060     */
    061    final static public Priority INFO = new Level(INFO_INT, "INFO", 6);
    062
    063    /**
    064     * @deprecated Use {@link Level#DEBUG} instead.
    065     */
    066    final static public Priority DEBUG = new Level(DEBUG_INT, "DEBUG", 7);
    067
    068    /**
    069      * Default constructor for deserialization.
    070      */
    071    protected Priority() {
    072        level = DEBUG_INT;
    073        levelStr = "DEBUG";
    074        syslogEquivalent = 7;
    075    }
    076
    077    /**
    078       Instantiate a level object.
    079     */
    080    protected Priority(int level, String levelStr, int syslogEquivalent) {
    081        this.level = level;
    082        this.levelStr = levelStr;
    083        this.syslogEquivalent = syslogEquivalent;
    084    }
    085
    086    /**
    087       Two priorities are equal if their level fields are equal.
    088       @since 1.2
    089     */
    090    public boolean equals(Object o) {
    091        if (o instanceof Priority) {
    092            Priority r = (Priority) o;
    093            return (this.level == r.level);
    094        } else {
    095            return false;
    096        }
    097    }
    098
    099    /**
    100       Return the syslog equivalent of this priority as an integer.
    101     */
    102    public final int getSyslogEquivalent() {
    103        return syslogEquivalent;
    104    }
    105
    106    /**
    107       Returns <code>true</code> if this level has a higher or equal
    108       level than the level passed as argument, <code>false</code>
    109       otherwise.
    110
    111       <p>You should think twice before overriding the default
    112       implementation of <code>isGreaterOrEqual</code> method.
    113
    114    */
    115    public boolean isGreaterOrEqual(Priority r) {
    116        return level >= r.level;
    117    }
    118
    119    /**
    120       Return all possible priorities as an array of Level objects in
    121       descending order.
    122
    123       @deprecated This method will be removed with no replacement.
    124    */
    125    public static Priority[] getAllPossiblePriorities() {
    126        return new Priority[] { Priority.FATAL, Priority.ERROR, Level.WARN, Priority.INFO, Priority.DEBUG };
    127    }
    128
    129    /**
    130       Returns the string representation of this priority.
    131     */
    132    final public String toString() {
    133        return levelStr;
    134    }
    135
    136    /**
    137       Returns the integer representation of this level.
    138     */
    139    public final int toInt() {
    140        return level;
    141    }
    142
    143    /**
    144     * @deprecated Please use the {@link Level#toLevel(String)} method instead.
    145    */
    146    public static Priority toPriority(String sArg) {
    147        return Level.toLevel(sArg);
    148    }
    149
    150    /**
    151     * @deprecated Please use the {@link Level#toLevel(int)} method instead.
    152     */
    153    public static Priority toPriority(int val) {
    154        return toPriority(val, Priority.DEBUG);
    155    }
    156
    157    /**
    158     * @deprecated Please use the {@link Level#toLevel(int, Level)} method instead.
    159    */
    160    public static Priority toPriority(int val, Priority defaultPriority) {
    161        return Level.toLevel(val, (Level) defaultPriority);
    162    }
    163
    164    /**
    165     * @deprecated Please use the {@link Level#toLevel(String, Level)} method instead.
    166     */
    167    public static Priority toPriority(String sArg, Priority defaultPriority) {
    168        return Level.toLevel(sArg, (Level) defaultPriority);
    169    }
    170}