1 /*
2 * This file is part of AceLogger.
3 *
4 * AceLogger is free software: you can redistribute it and/or modify it under the terms of the GNU
5 * Lesser General Public License as published by the Free Software Foundation, either version 3 of
6 * the License, or (at your option) any later version.
7 *
8 * AceLogger is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
9 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public License along with AceLogger.
13 * If not, see <http://www.gnu.org/licenses/lgpl-3.0.html>.
14 */
15 package net.sourceforge.acelogger.level.filter;
16
17 import net.sourceforge.acelogger.constants.LevelFilterConstants;
18 import net.sourceforge.acelogger.level.LogLevel;
19
20 /**
21 * A filter that matches levels greater or equal the supplied one.
22 *
23 * @author Zardi (https://sourceforge.net/users/daniel_zardi)
24 * @version 1.0.0
25 * @since 1.0.0
26 */
27 public class GreaterOrEqualLevelFilter extends BaseLevelFilter {
28
29 /**
30 * The minimum level for this filter to match.
31 */
32 private LogLevel minimumLevel;
33
34 /**
35 * Constructs a new filter that matches levels greater or equal the supplied one. The level used
36 * is the one defined by {@link LevelFilterConstants#DEFAULT_LEVEL}.
37 *
38 * @param identifier
39 * The name of this filter.
40 * @since 1.0.0
41 */
42 public GreaterOrEqualLevelFilter(String identifier) {
43 this(identifier, LevelFilterConstants.DEFAULT_LEVEL);
44 }
45
46 /**
47 * Constructs a new filter that matches levels greater or equal the supplied one.
48 *
49 * @param identifier
50 * The name of this filter.
51 * @param minimumLevel
52 * The desired level for this filter.
53 * @since 1.0.0
54 */
55 public GreaterOrEqualLevelFilter(String identifier, LogLevel minimumLevel) {
56 super(identifier);
57 setMinimumLevel(minimumLevel);
58 }
59
60 /**
61 * Gets the minimum level of this filter.
62 *
63 * @return The minimum level.
64 * @since 1.0.0
65 */
66 public final LogLevel getMinimumLevel() {
67 return minimumLevel;
68 }
69
70 /**
71 * Sets the minimum level of this filter.
72 *
73 * @param minimumLevel
74 * the minimum level to set.
75 * @since 1.0.0
76 */
77 public final void setMinimumLevel(LogLevel minimumLevel) {
78 if (minimumLevel == null) {
79 this.minimumLevel = LevelFilterConstants.DEFAULT_LEVEL;
80 } else {
81 this.minimumLevel = minimumLevel;
82 }
83 }
84
85 /** {@inheritDoc} */
86 public boolean isSuitable(LogLevel level) {
87 boolean isEnabled = false;
88 if (level != null) {
89 isEnabled = level.compareTo(minimumLevel) >= 0;
90 }
91 return isEnabled;
92 }
93
94 }