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 less 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 LessOrEqualLevelFilter extends BaseLevelFilter {
28
29 /**
30 * The maximum level for this filter to match.
31 */
32 private LogLevel maximumLevel;
33
34 /**
35 * Constructs a new filter that matches levels less or equal the supplied one. The level used is
36 * 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 LessOrEqualLevelFilter(String identifier) {
43 this(identifier, LevelFilterConstants.DEFAULT_LEVEL);
44 }
45
46 /**
47 * Constructs a new filter that matches levels less or equal the supplied one.
48 *
49 * @param identifier
50 * The name of this filter.
51 * @param maximumLevel
52 * The desired level for this filter.
53 * @since 1.0.0
54 */
55 public LessOrEqualLevelFilter(String identifier, LogLevel maximumLevel) {
56 super(identifier);
57 setMaximumLevel(maximumLevel);
58 }
59
60 /**
61 * Gets the maximum level of this filter.
62 *
63 * @return The maximum level.
64 * @since 1.0.0
65 */
66 public final LogLevel getMaximumLevel() {
67 return maximumLevel;
68 }
69
70 /**
71 * Sets the maximum level of this filter.
72 *
73 * @param maximumLevel
74 * the maximum level to set.
75 * @since 1.0.0
76 */
77 public final void setMaximumLevel(LogLevel maximumLevel) {
78 this.maximumLevel = maximumLevel;
79 }
80
81 /** {@inheritDoc} */
82 public boolean isSuitable(LogLevel level) {
83 boolean isEnabled = false;
84 if (level != null & maximumLevel != null) {
85 isEnabled = level.compareTo(maximumLevel) <= 0;
86 }
87 return isEnabled;
88 }
89 }