/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.util;
/**
* Provides the message level constants for logging and tracing
*/
public class Level {
/** level value */
private int level;
/** level name */
private String levelText;
/** level value for level "OFF" */
public final static int OFF_INT = Integer.MAX_VALUE;
/** level value for level "SEVERE" */
public final static int SEVERE_INT = 70000;
/** level value for level "WARNING" */
public final static int WARNING_INT = 60000;
/** level value for level "INFO" */
public final static int INFO_INT = 50000;
/** level value for level "CONFIG" */
public final static int CONFIG_INT = 40000;
/** level value for level "FINE" */
public final static int FINE_INT = 30000;
/** level value for level "FINER" */
public final static int FINER_INT = 20000;
/** level value for level "FINEST" */
public final static int FINEST_INT = 10000;
/** level value for level "ALL" */
public final static int ALL_INT = Integer.MIN_VALUE;
/** message level "OFF" */
final static public Level OFF = new Level(OFF_INT, "OFF");
/** message level "SEVERE" */
final static public Level SEVERE = new Level(SEVERE_INT, "SEVERE");
/** message level "WARNING" */
final static public Level WARNING = new Level(WARNING_INT, "WARNING");
/** message level "INFO" */
final static public Level INFO = new Level(INFO_INT, "INFO");
/** message level "CONFIG" */
final static public Level CONFIG = new Level(CONFIG_INT, "CONFIG");
/** message level "FINE" */
final static public Level FINE = new Level(FINE_INT, "FINE");
/** message level "FINER" */
final static public Level FINER = new Level(FINER_INT, "FINER");
/** message level "FINEST" */
final static public Level FINEST = new Level(FINEST_INT, "FINEST");
/** message level "ALL" */
final static public Level ALL = new Level(ALL_INT, "ALL");
/**
* Instantiate a new level object.
*
* @param level
* level value
* @param levelText
* level name
*/
protected Level(int level, String levelText) {
// set level value
this.level = level;
// set level name
this.levelText = levelText;
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object o) {
// check if current object o is an instance of Level
if (o instanceof Level) {
// cast Object to Level
Level r = (Level) o;
// return true if both levels are the same
return (this.level == r.level);
} else // if o is no instance of Level return false
{
return false;
}
}
/**
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return this.level;
}
/**
* method isOn() returns ture if the message level is not OFF
*
* @return boolean true if the message level is less than OFF
*/
public boolean isOn() {
if (level < OFF_INT)
return true;
else
return false;
}
/**
* method isGreaterOrEqual() returns true if the argument level is greater or equal to the
* specified level.
*
* @param r
* argument level passed to the method
*
* @return boolean - true if argument level is greater of equal to the specified level
*/
public boolean isGreaterOrEqual(Level r) {
if (r == null)
return false;
else
return level <= r.level;
}
/**
* Returns the string representation of this priority.
*
* @see java.lang.Object#toString()
*/
public final String toString() {
return levelText;
}
/**
* Returns the integer representation of this level.
*
* @return int - level value
*/
public final int toInteger() {
return level;
}
}