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 an exact level.
22   * 
23   * @author Zardi (https://sourceforge.net/users/daniel_zardi)
24   * @version 1.0.0
25   * @since 1.0.0
26   */
27  public class EqualsLevelFilter extends BaseLevelFilter {
28  
29  	/**
30  	 * The desired level for this filter to match.
31  	 */
32  	private LogLevel desiredLevel;
33  
34  	/**
35  	 * Constructs a new filter to make exact matches of levels. The level used is the one defined by
36  	 * {@link LevelFilterConstants#DEFAULT_LEVEL}.
37  	 * 
38  	 * @param identifier
39  	 *            The name of this filter.
40  	 * @since 1.0.0
41  	 */
42  	public EqualsLevelFilter(String identifier) {
43  		this(identifier, LevelFilterConstants.DEFAULT_LEVEL);
44  	}
45  
46  	/**
47  	 * Constructs a new filter to make exact matches of levels.
48  	 * 
49  	 * @param identifier
50  	 *            The name of this filter.
51  	 * @param desiredLevel
52  	 *            The desired level for this filter.
53  	 * @since 1.0.0
54  	 */
55  	public EqualsLevelFilter(String identifier, LogLevel desiredLevel) {
56  		super(identifier);
57  		setDesiredLevel(desiredLevel);
58  	}
59  
60  	/**
61  	 * Gets the desired level of this filter.
62  	 * 
63  	 * @return The desired level.
64  	 * @since 1.0.0
65  	 */
66  	public final LogLevel getDesiredLevel() {
67  		return desiredLevel;
68  	}
69  
70  	/**
71  	 * Sets the desired level of this filter.
72  	 * 
73  	 * @param desiredLevel
74  	 *            The desired level to set.
75  	 * @since 1.0.0
76  	 */
77  	public final void setDesiredLevel(LogLevel desiredLevel) {
78  		this.desiredLevel = desiredLevel;
79  	}
80  
81  	/** {@inheritDoc} */
82  	public boolean isSuitable(LogLevel level) {
83  		boolean isEnabled = false;
84  		if (level != null && desiredLevel != null) {
85  			isEnabled = level.compareTo(desiredLevel) == 0;
86  		}
87  		return isEnabled;
88  	}
89  
90  }