1054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu/* 2054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * Copyright 2001-2004 The Apache Software Foundation. 37ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 4054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * Licensed under the Apache License, Version 2.0 (the "License"); 5054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * you may not use this file except in compliance with the License. 6054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * You may obtain a copy of the License at 77ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 8054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * http://www.apache.org/licenses/LICENSE-2.0 97ba0605dc97fb81bde8311510d27b3ccba170008Ceki Gulcu * 10054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * Unless required by applicable law or agreed to in writing, software 11054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * distributed under the License is distributed on an "AS IS" BASIS, 12054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * See the License for the specific language governing permissions and 14054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu * limitations under the License. 1588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 16054ed393bd95a6f7c34398accc5cefe36fae8989Ceki Gulcu 1788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu// Contributors: Kitching Simon <Simon.Kitching@orange.ch> 1888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 1988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcupackage org.apache.log4j; 2088c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 2188c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu// Contributors: Kitching Simon <Simon.Kitching@OOOrange.ch> 2288c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 2388c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu/** 2488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu <font color="#AA4444">Refrain from using this class directly, use 2588c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu the {@link Level} class instead</font>. 2688c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 2788c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu @author Ceki Gülcü */ 2888c4c456766193e012eb890e2208473d99b91f83Ceki Gulcupublic class Priority { 2988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu 3031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu transient int level; 3131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu transient String levelStr; 3231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu transient int syslogEquivalent; 3331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 3431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int OFF_INT = Integer.MAX_VALUE; 3531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int FATAL_INT = 50000; 3631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int ERROR_INT = 40000; 3731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int WARN_INT = 30000; 3831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int INFO_INT = 20000; 3931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int DEBUG_INT = 10000; 4031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu // public final static int FINE_INT = DEBUG_INT; 4131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final static int ALL_INT = Integer.MIN_VALUE; 4231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 4331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 4431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Use {@link Level#FATAL} instead. 4531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 4631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final static public Priority FATAL = new Level(FATAL_INT, "FATAL", 0); 4731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 4831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 4931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Use {@link Level#ERROR} instead. 5031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 5131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final static public Priority ERROR = new Level(ERROR_INT, "ERROR", 3); 5231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 5431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Use {@link Level#WARN} instead. 5531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 5631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final static public Priority WARN = new Level(WARN_INT, "WARN", 4); 5731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 5831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 5931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Use {@link Level#INFO} instead. 6031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 6131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final static public Priority INFO = new Level(INFO_INT, "INFO", 6); 6231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 6431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Use {@link Level#DEBUG} instead. 6531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 6631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final static public Priority DEBUG = new Level(DEBUG_INT, "DEBUG", 7); 6731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 6831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 6931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * Default constructor for deserialization. 7031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 7131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu protected Priority() { 7231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu level = DEBUG_INT; 7331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu levelStr = "DEBUG"; 7431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu syslogEquivalent = 7; 7531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 7631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 7731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 7831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Instantiate a level object. 7931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 8031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu protected Priority(int level, String levelStr, int syslogEquivalent) { 8131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.level = level; 8231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.levelStr = levelStr; 8331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu this.syslogEquivalent = syslogEquivalent; 8431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 8531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 8631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 8731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Two priorities are equal if their level fields are equal. 8831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu @since 1.2 8931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 9031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean equals(Object o) { 9131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu if (o instanceof Priority) { 9231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Priority r = (Priority) o; 9331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return (this.level == r.level); 9431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } else { 9531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return false; 9631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 9731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 9831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 9931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 10031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Return the syslog equivalent of this priority as an integer. 10131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 10231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final int getSyslogEquivalent() { 10331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return syslogEquivalent; 10431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 10531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 10631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 10731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Returns <code>true</code> if this level has a higher or equal 10831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu level than the level passed as argument, <code>false</code> 10931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu otherwise. 11031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 11131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu <p>You should think twice before overriding the default 11231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu implementation of <code>isGreaterOrEqual</code> method. 11331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 11488c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu */ 11531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public boolean isGreaterOrEqual(Priority r) { 11631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return level >= r.level; 11731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 11831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 11931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 12031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Return all possible priorities as an array of Level objects in 12131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu descending order. 12231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 12331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu @deprecated This method will be removed with no replacement. 12431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 12531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Priority[] getAllPossiblePriorities() { 12631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return new Priority[] { Priority.FATAL, Priority.ERROR, Level.WARN, Priority.INFO, Priority.DEBUG }; 12731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 12831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 12931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 13031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Returns the string representation of this priority. 13131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 13231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu final public String toString() { 13331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return levelStr; 13431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 13531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 13631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 13731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu Returns the integer representation of this level. 13831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 13931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public final int toInt() { 14031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return level; 14131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 14231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 14331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 14431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Please use the {@link Level#toLevel(String)} method instead. 14531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 14631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Priority toPriority(String sArg) { 14731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.toLevel(sArg); 14831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 14931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 15031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 15131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Please use the {@link Level#toLevel(int)} method instead. 15231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 15331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Priority toPriority(int val) { 15431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return toPriority(val, Priority.DEBUG); 15531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 15631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 15731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 15831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Please use the {@link Level#toLevel(int, Level)} method instead. 15931212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 16031212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Priority toPriority(int val, Priority defaultPriority) { 16131212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.toLevel(val, (Level) defaultPriority); 16231212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu } 16331212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu 16431212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu /** 16531212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu * @deprecated Please use the {@link Level#toLevel(String, Level)} method instead. 16631212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu */ 16731212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu public static Priority toPriority(String sArg, Priority defaultPriority) { 16831212435723e2dfd5d6716d1f6a7b0e66a1e6b38Ceki Gulcu return Level.toLevel(sArg, (Level) defaultPriority); 16988c4c456766193e012eb890e2208473d99b91f83Ceki Gulcu } 17014797605e251ff02452545cf22124dae25955acdCeki Gulcu}