001    /*
002     * Copyright 2002-2004 the original author or authors.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     *
008     * http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.richclient.core;
017    
018    import org.springframework.core.enums.ShortCodedLabeledEnum;
019    
020    /**
021     * A typesafe enum representing different levels of severity. Each enum has an
022     * associated label, which may be useful for defining resources such as messages
023     * and icons in properties files.
024     *
025     */
026    public class Severity extends ShortCodedLabeledEnum {
027    
028            /** The label associated with the info level. */
029            public static final String INFO_LABEL = "info";
030    
031            /** The label associated with the warning level. */
032            public static final String WARNING_LABEL = "warning";
033    
034            /** The label associated with the error level. */
035            public static final String ERROR_LABEL = "error";
036    
037            private static final long serialVersionUID = 86569930382195510L;
038    
039            /** Info-level severity. */
040            public static final Severity INFO = new Severity(0, INFO_LABEL);
041    
042            /** Warning-level severity. */
043            public static final Severity WARNING = new Severity(50, WARNING_LABEL);
044    
045            /** Error-level severity. */
046            public static final Severity ERROR = new Severity(100, ERROR_LABEL);
047    
048            /**
049             * Constructor.
050             *
051             * @param magnitude how does it relate to other {@link Severity} levels, a
052             * higher magnitude means more severe.
053             * @param label label to associate with, may be used to access resources
054             * like messages/icons.
055             */
056            protected Severity(int magnitude, String label) {
057                    super(magnitude, label);
058            }
059    
060    }