View Javadoc

1   /*
2    * Copyright 2012 smartics, Kronseder & Reiner GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package de.smartics.maven.issue.util;
17  
18  import java.io.Serializable;
19  
20  /**
21   * The log level.
22   */
23  public final class LogLevel implements Serializable
24  {
25    // ********************************* Fields *********************************
26  
27    // --- constants ------------------------------------------------------------
28  
29    /**
30     * The class version identifier.
31     * <p>
32     * The value of this constant is {@value}.
33     * </p>
34     */
35    private static final long serialVersionUID = 1L;
36  
37    /**
38     * The quiet level: prints no info messages.
39     * <p>
40     * The value of this constant is {@value}.
41     * </p>
42     */
43    public static final String QUIET = "QUIET";
44  
45    /**
46     * The normal level: writes only command result descriptions.
47     * <p>
48     * The value of this constant is {@value}.
49     * </p>
50     */
51    public static final String NORMAL = "NORMAL";
52  
53    /**
54     * The verbose level: adds information about the called service and
55    * parameters
56     * <p>
57     * The value of this constant is {@value}.
58     * </p>
59     */
60    public static final String VERBOSE = "VERBOSE";
61  
62    /**
63     * The verbose level: provides the most verbose output with dumping the
64    * contents of the returned pages.
65     * <p>
66     * The value of this constant is {@value}.
67     * </p>
68     */
69    public static final String TRACE = "TRACE";
70  
71    // --- members --------------------------------------------------------------
72  
73    /**
74     * The name of the current level.
75     *
76     * @serial
77     */
78    private final String level;
79  
80    // ****************************** Initializer *******************************
81  
82    // ****************************** Constructors ******************************
83  
84    /**
85     * Default constructor.
86     *
87     * @param level the name of the current level.
88     */
89    public LogLevel(final String level)
90    {
91      this.level = level;
92    }
93  
94    // ****************************** Inner Classes *****************************
95  
96    // ********************************* Methods ********************************
97  
98    // --- init -----------------------------------------------------------------
99  
100   // --- get&set --------------------------------------------------------------
101 
102   /**
103    * Returns the name of the current level.
104    *
105    * @return the name of the current level.
106    */
107   public String getLevel()
108   {
109     return level;
110   }
111 
112   // --- business -------------------------------------------------------------
113 
114   /**
115    * Checks if the current level is quiet.
116    *
117    * @return <code>true</code> if the current level is quiet.
118    */
119   public boolean isQuiet()
120   {
121     return QUIET.equals(level) || isVerbose();
122   }
123 
124   /**
125    * Checks if the current level is normal or greater.
126    *
127    * @return <code>true</code> if the current level is normal or greater.
128    */
129   public boolean isNormal()
130   {
131     return NORMAL.equals(level) || isVerbose();
132   }
133 
134   /**
135    * Checks if the current level is verbose or greater.
136    *
137    * @return <code>true</code> if the current level is verbose or greater.
138    */
139   public boolean isVerbose()
140   {
141     return VERBOSE.equals(level) || isTrace();
142   }
143 
144   /**
145    * Checks if the current level is trace.
146    *
147    * @return <code>true</code> if the current level is trace.
148    */
149   public boolean isTrace()
150   {
151     return TRACE.equals(level);
152   }
153 
154   // --- object basics --------------------------------------------------------
155 
156   /**
157    * {@inheritDoc}
158    *
159    * @see java.lang.Object#toString()
160    */
161   @Override
162   public String toString()
163   {
164     return level;
165   }
166 }