/* * Copyright 2010 Google Inc. * * Licensed 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 java.util.logging; import java.io.Serializable; import java.util.Locale; /** * An emulation of the java.util.logging.Level class. See * <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html"> * The Java API doc for details</a> */ public class Level implements Serializable { public static Level ALL = new LevelAll(); public static Level CONFIG = new LevelConfig(); public static Level FINE = new LevelFine(); public static Level FINER = new LevelFiner(); public static Level FINEST = new LevelFinest(); public static Level INFO = new LevelInfo(); public static Level OFF = new LevelOff(); public static Level SEVERE = new LevelSevere(); public static Level WARNING = new LevelWarning(); private static class LevelAll extends Level { @Override public String getName() { return "ALL"; } @Override public int intValue() { return Integer.MIN_VALUE; } } private static class LevelConfig extends Level { @Override public String getName() { return "CONFIG"; } @Override public int intValue() { return 700; } } private static class LevelFine extends Level { @Override public String getName() { return "FINE"; } @Override public int intValue() { return 500; } } private static class LevelFiner extends Level { @Override public String getName() { return "FINER"; } @Override public int intValue() { return 400; } } private static class LevelFinest extends Level { @Override public String getName() { return "FINEST"; } @Override public int intValue() { return 300; } } private static class LevelInfo extends Level { @Override public String getName() { return "INFO"; } @Override public int intValue() { return 800; } } private static class LevelOff extends Level { @Override public String getName() { return "OFF"; } @Override public int intValue() { return Integer.MAX_VALUE; } } private static class LevelSevere extends Level { @Override public String getName() { return "SEVERE"; } @Override public int intValue() { return 1000; } } private static class LevelWarning extends Level { @Override public String getName() { return "WARNING"; } @Override public int intValue() { return 900; } } public static Level parse(String name) { Logger.assertLoggingValues(); if (System.getProperty("jre.logging.logLevel").equals("OFF")) { return null; } String value = name.toUpperCase(Locale.ROOT); switch (value) { case "ALL": return Level.ALL; case "CONFIG": return Level.CONFIG; case "FINE": return Level.FINE; case "FINER": return Level.FINER; case "FINEST": return Level.FINEST; case "INFO": return Level.INFO; case "OFF": return Level.OFF; case "SEVERE": return Level.SEVERE; case "WARNING": return Level.WARNING; default: throw new IllegalArgumentException("Invalid level \"" + name + "\""); } } protected Level() { } public String getName() { return "DUMMY"; } public int intValue() { return -1; } @Override public String toString() { return getName(); } /* Not Implemented */ // public boolean equals(Object ox) {} // protected Level(String name, int value, String resourceBundleName) {} // public String getLocalizedName() {} // public String getResourceBundleName() {} // public int hashCode() {} }