View Javadoc

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  }