blob: ed6cb4a2a2e391fad4cbb6ee1c8920f46bd9d4a2 [file] [log] [blame]
/*
* 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 com.google.gwt.logging.impl;
import java.util.logging.Level;
/**
* Implementation for the Level class when logging is enabled.
*/
public class LevelImplRegular implements LevelImpl {
/**
* Since the Impl class is in a different package than the Level class, we
* need to work around the fact that the Impl class cannot access the
* protected Level constructor.
*/
private static class LevelWithExposedConstructor extends Level {
public LevelWithExposedConstructor(String name, int value) {
super(name, value);
}
}
private static Level ALL =
new LevelWithExposedConstructor("ALL", Integer.MIN_VALUE);
private static Level CONFIG =
new LevelWithExposedConstructor("CONFIG", 700);
private static Level FINE =
new LevelWithExposedConstructor("FINE", 500);
private static Level FINER =
new LevelWithExposedConstructor("FINER", 400);
private static Level FINEST =
new LevelWithExposedConstructor("FINEST", 300);
private static Level INFO =
new LevelWithExposedConstructor("INFO", 800);
private static Level OFF =
new LevelWithExposedConstructor("OFF", Integer.MAX_VALUE);
private static Level SEVERE =
new LevelWithExposedConstructor("SEVERE", 1000);
private static Level WARNING =
new LevelWithExposedConstructor("WARNING", 900);
private String name;
private int value;
public LevelImplRegular() { }
public Level all() {
return LevelImplRegular.ALL;
}
public Level config() {
return LevelImplRegular.CONFIG;
}
public Level fine() {
return LevelImplRegular.FINE;
}
public Level finer() {
return LevelImplRegular.FINER;
}
public Level finest() {
return LevelImplRegular.FINEST;
}
public String getName() {
return name;
}
public Level info() {
return LevelImplRegular.INFO;
}
public int intValue() {
return value;
}
public Level off() {
return LevelImplRegular.OFF;
}
public Level parse(String name) {
if (name.equalsIgnoreCase(all().getName())) {
return all();
} else if (name.equalsIgnoreCase(config().getName())) {
return config();
} else if (name.equalsIgnoreCase(fine().getName())) {
return fine();
} else if (name.equalsIgnoreCase(finer().getName())) {
return finer();
} else if (name.equalsIgnoreCase(finest().getName())) {
return finest();
} else if (name.equalsIgnoreCase(info().getName())) {
return info();
} else if (name.equalsIgnoreCase(off().getName())) {
return off();
} else if (name.equalsIgnoreCase(severe().getName())) {
return severe();
} else if (name.equalsIgnoreCase(warning().getName())) {
return warning();
}
return null;
}
public void setName(String newName) {
name = newName;
}
public void setValue(int newValue) {
value = newValue;
}
public Level severe() {
return LevelImplRegular.SEVERE;
}
@Override
public String toString() {
return getName();
}
public Level warning() {
return LevelImplRegular.WARNING;
}
}