001package org.kuali.common.util.log.log4j.model;
002
003import javax.xml.bind.annotation.XmlAttribute;
004import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
005
006import org.kuali.common.util.Assert;
007import org.kuali.common.util.log.log4j.jaxb.OmitDefaultLog4JLevelClassAdapter;
008
009public final class Level {
010
011        public static final Class<org.apache.log4j.Level> DEFAULT_CLASS = org.apache.log4j.Level.class;
012        public static final Level DEFAULT = new Level();
013
014        @XmlAttribute(name = "class")
015        @XmlJavaTypeAdapter(OmitDefaultLog4JLevelClassAdapter.class)
016        private final Class<?> levelClass;
017
018        @XmlAttribute
019        private final Threshold value;
020
021        private Level() {
022                this(DEFAULT_CLASS, Threshold.DEFAULT_LOGGER_VALUE);
023        }
024
025        public Level(Threshold value) {
026                this(DEFAULT_CLASS, value);
027        }
028
029        public Level(Class<?> levelClass, Threshold value) {
030                Assert.noNulls(levelClass, value);
031                this.levelClass = levelClass;
032                this.value = value;
033        }
034
035        public Class<?> getLevelClass() {
036                return levelClass;
037        }
038
039        public Threshold getValue() {
040                return value;
041        }
042
043}