diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java
index 442f0efb3..995fa0c0c 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/Checker.java
@@ -31,7 +31,7 @@ import com.puppycrawl.tools.checkstyle.api.Configuration;
import com.puppycrawl.tools.checkstyle.api.Context;
import com.puppycrawl.tools.checkstyle.api.FileSetCheck;
import com.puppycrawl.tools.checkstyle.api.Filter;
-import com.puppycrawl.tools.checkstyle.api.FilterChain;
+import com.puppycrawl.tools.checkstyle.api.FilterSet;
import com.puppycrawl.tools.checkstyle.api.LocalizedMessage;
import com.puppycrawl.tools.checkstyle.api.MessageDispatcher;
import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
@@ -125,7 +125,7 @@ public class Checker extends AutomaticBean
private Context mChildContext;
/** The audit event filter chain */
- private final FilterChain mFilterChain = new FilterChain();
+ private final FilterSet mFilterChain = new FilterSet();
/**
* The severity level of any violations found by submodules.
@@ -298,7 +298,7 @@ public class Checker extends AutomaticBean
protected void fireAuditStarted()
{
final AuditEvent evt = new AuditEvent(this);
- if (mFilterChain.decide(evt) != Filter.DENY) {
+ if (mFilterChain.accept(evt)) {
final Iterator it = mListeners.iterator();
while (it.hasNext()) {
final AuditListener listener = (AuditListener) it.next();
@@ -311,7 +311,7 @@ public class Checker extends AutomaticBean
protected void fireAuditFinished()
{
final AuditEvent evt = new AuditEvent(this);
- if (mFilterChain.decide(evt) != Filter.DENY) {
+ if (mFilterChain.accept(evt)) {
final Iterator it = mListeners.iterator();
while (it.hasNext()) {
final AuditListener listener = (AuditListener) it.next();
@@ -328,7 +328,7 @@ public class Checker extends AutomaticBean
{
final String stripped = getStrippedFileName(aFileName);
final AuditEvent evt = new AuditEvent(this, stripped);
- if (mFilterChain.decide(evt) != Filter.DENY) {
+ if (mFilterChain.accept(evt)) {
final Iterator it = mListeners.iterator();
while (it.hasNext()) {
final AuditListener listener = (AuditListener) it.next();
@@ -345,7 +345,7 @@ public class Checker extends AutomaticBean
{
final String stripped = getStrippedFileName(aFileName);
final AuditEvent evt = new AuditEvent(this, stripped);
- if (mFilterChain.decide(evt) != Filter.DENY) {
+ if (mFilterChain.accept(evt)) {
final Iterator it = mListeners.iterator();
while (it.hasNext()) {
final AuditListener listener = (AuditListener) it.next();
@@ -364,7 +364,7 @@ public class Checker extends AutomaticBean
final String stripped = getStrippedFileName(aFileName);
for (int i = 0; i < aErrors.length; i++) {
final AuditEvent evt = new AuditEvent(this, stripped, aErrors[i]);
- if (mFilterChain.decide(evt) != Filter.DENY) {
+ if (mFilterChain.accept(evt)) {
final Iterator it = mListeners.iterator();
while (it.hasNext()) {
final AuditListener listener = (AuditListener) it.next();
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/SuppressionsLoader.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/SuppressionsLoader.java
index 4505819e3..1777ef65f 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/SuppressionsLoader.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/SuppressionsLoader.java
@@ -30,7 +30,7 @@ import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
-import com.puppycrawl.tools.checkstyle.api.FilterChain;
+import com.puppycrawl.tools.checkstyle.api.FilterSet;
import com.puppycrawl.tools.checkstyle.filters.SuppressElement;
/**
@@ -52,7 +52,7 @@ public final class SuppressionsLoader
* the filter chain to return in getAFilterChain(),
* configured during parsing
*/
- private final FilterChain mFilterChain = new FilterChain();
+ private final FilterSet mFilterChain = new FilterSet();
/**
* Creates a new SuppressionsLoader instance.
@@ -69,7 +69,7 @@ public final class SuppressionsLoader
* Returns the loaded filter chain.
* @return the loaded filter chain.
*/
- public FilterChain getFilterChain()
+ public FilterSet getFilterChain()
{
return mFilterChain;
}
@@ -116,7 +116,7 @@ public final class SuppressionsLoader
* @return the filter chain of suppression elements specified in the file.
* @throws CheckstyleException if an error occurs.
*/
- public static FilterChain loadSuppressions(String aFilename)
+ public static FilterSet loadSuppressions(String aFilename)
throws CheckstyleException
{
FileReader reader = null;
@@ -138,7 +138,7 @@ public final class SuppressionsLoader
* @return the filter chain of suppression elements in aSource.
* @throws CheckstyleException if an error occurs.
*/
- private static FilterChain loadSuppressions(
+ private static FilterSet loadSuppressions(
InputSource aSource, String aSourceName)
throws CheckstyleException
{
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Filter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Filter.java
index af249d69f..5ff6600a2 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Filter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/Filter.java
@@ -19,30 +19,16 @@
package com.puppycrawl.tools.checkstyle.api;
/**
- * Users should extend this class to implement customized
- * Object filtering.
+ * An interface for filtering objects.
* @author Rick Giles
*/
public interface Filter
{
- /** The object is acceptable to this filter. */
- int ACCEPT = -1;
-
- /** The object is rejected by this filter. */
- int DENY = 0;
-
- /** This filter is neutral with respect to the object. */
- int NEUTRAL = 1;
-
/**
- * Determines the filtering of an Object.
- * If the decision is DENY, then the Object is rejected.
- * If the decision is NEUTRAL, then the filter is neutral
- * with respect to the Object.
- * If the decision is ACCEPT then the object will be accepted.
- * @param aObject the object to decide on.
- * @return the decision of the filter.
+ * Determines whether or not a filtered Object is accepted.
+ * @param aObject the Object to filter.
+ * @return true if the aObject is accepted.
*/
- int decide(Object aObject);
+ boolean accept(Object aObject);
}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FilterChain.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FilterSet.java
similarity index 57%
rename from src/checkstyle/com/puppycrawl/tools/checkstyle/api/FilterChain.java
rename to src/checkstyle/com/puppycrawl/tools/checkstyle/api/FilterSet.java
index cc187036c..0602e5f68 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FilterChain.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/api/FilterSet.java
@@ -18,72 +18,74 @@
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.api;
-import java.util.ArrayList;
+import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
+import java.util.Set;
/**
- * A filter chain applies filters to Objects in chain order.
- * If the decision of a filter in the chain is ACCEPT, then
- * the chain accepts the Object immediately, without consulting
- * the remaining filters.
- * If the decision of a filter in the chain is DENY, then
- * the chain rejects the Object immediately, without consulting
- * the remaining filters.
- * If the decision of a filter in the chain is NEUTRAL, then
- * the mext filter in the chain, if any, is consulted.
+ * A filter set applies filters to Objects.
+ * If a filter in the set rejects an Object, then the
+ * Object is rejected. Otherwise, the Object is accepted.
* @author Rick Giles
*/
-public class FilterChain
+public class FilterSet
implements Filter
{
- /** filter chain */
- private List mFilterChain = new ArrayList();
+ /** filter set */
+ private Set mFilters = new HashSet();
/**
- * Adds a Filter as the last filter in the chain.
+ * Adds a Filter to the set.
* @param aFilter the Filter to add.
*/
public void addFilter(Filter aFilter)
{
- mFilterChain.add(aFilter);
+ mFilters.add(aFilter);
}
- /** @see com.puppycrawl.tools.checkstyle.api.Filter#decide */
- public int decide(Object aObject)
+ /**
+ * Returns the Filters of the filter set.
+ * @return the Filters of the filter set.
+ */
+ protected Set getFilters()
{
- final Iterator it = mFilterChain.iterator();
- while (it.hasNext()) {
- final Filter filter = (Filter) it.next();
- final int decision = filter.decide(aObject);
- if (decision != Filter.NEUTRAL) {
- return decision;
- }
- }
- return Filter.NEUTRAL;
+ return mFilters;
}
/** @see java.lang.Object#toString() */
public String toString()
{
- return mFilterChain.toString();
+ return mFilters.toString();
}
/** @see java.lang.Object#hashCode() */
public int hashCode()
{
- return mFilterChain.hashCode();
+ return mFilters.hashCode();
}
/** @see java.lang.Object#equals(java.lang.Object) */
public boolean equals (Object aObject)
{
- if (aObject instanceof FilterChain) {
- final FilterChain other = (FilterChain) aObject;
- return this.mFilterChain.equals(other.mFilterChain);
+ if (aObject instanceof FilterSet) {
+ final FilterSet other = (FilterSet) aObject;
+ return this.mFilters.equals(other.mFilters);
}
else {
return false;
}
}
+
+ /** @see com.puppycrawl.tools.checkstyle.api.Filter */
+ public boolean accept(Object aObject)
+ {
+ final Iterator it = mFilters.iterator();
+ while (it.hasNext()) {
+ final Filter filter = (Filter) it.next();
+ if (!filter.accept(aObject)) {
+ return false;
+ }
+ }
+ return true;
+ }
}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/CSVFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/CSVFilter.java
index 1161b5738..f6061bb26 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/CSVFilter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/CSVFilter.java
@@ -18,22 +18,24 @@
////////////////////////////////////////////////////////////////////////////////
package com.puppycrawl.tools.checkstyle.filters;
+import java.util.Iterator;
import java.util.StringTokenizer;
-import com.puppycrawl.tools.checkstyle.api.FilterChain;
+import com.puppycrawl.tools.checkstyle.api.Filter;
+import com.puppycrawl.tools.checkstyle.api.FilterSet;
/**
*
- * This filter accepts an integer that matches a CSV value, or - * is in a CSV range. It is neutral on other Objects. + * This filter accepts an integer that matches a CSV value, where + * each value is an integer or a range of integers. *
* @author Rick Giles */ public class CSVFilter - extends FilterChain + extends FilterSet { /** - * Contructs aCSVFilter from a CSV, Comma-Separated Values,
+ * Constructs a CSVFilter from a CSV, Comma-Separated Values,
* string. Each value is an integer, or a range of integers. A range of
* integers is of the form integer-integer, such as 1-10.
* @param aPattern the CSV string.
@@ -60,4 +62,24 @@ public class CSVFilter
}
}
}
+
+ /**
+ * Determines whether an Object matches a CSV integer value.
+ * @param aObject the Object to check.
+ * @return true if aObject is an Integer that matches a CSV value.
+ */
+ public boolean accept(Object aObject)
+ {
+ if (!(aObject instanceof Integer)) {
+ return false;
+ }
+ final Iterator it = getFilters().iterator();
+ while (it.hasNext()) {
+ final Filter filter = (Filter) it.next();
+ if (filter.accept(aObject)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/DenyAllFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/DenyAllFilter.java
index e8ad16d7f..0735fe738 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/DenyAllFilter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/DenyAllFilter.java
@@ -40,9 +40,9 @@ public class DenyAllFilter
{
/** @see com.puppycrawl.tools.checkstyle.filter.Filter */
- public int decide(Object aObject)
+ public boolean accept(Object aObject)
{
- return Filter.DENY;
+ return false;
}
}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntMatchFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntMatchFilter.java
index 9389a4503..17dcfa9d0 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntMatchFilter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntMatchFilter.java
@@ -41,14 +41,9 @@ public class IntMatchFilter
}
/** @see com.puppycrawl.tools.checkstyle.api.Filter */
- public int decide(Object aObject)
+ public boolean accept(Object aObject)
{
- if ((mMatchValue.equals(aObject))) {
- return Filter.ACCEPT;
- }
- else {
- return Filter.NEUTRAL;
- }
+ return mMatchValue.equals(aObject);
}
/** @see java.lang.Object#toString() */
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntRangeFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntRangeFilter.java
index 1ff44e991..deeb33c2d 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntRangeFilter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/IntRangeFilter.java
@@ -49,17 +49,14 @@ public class IntRangeFilter
mUpperBound = new Integer(aUpperBound);
}
- /** @see com.puppycrawl.tools.checkstyle.api.Filter#decide */
- public int decide(Object aObject)
+ /** @see com.puppycrawl.tools.checkstyle.api.Filter */
+ public boolean accept(Object aObject)
{
- if ((mLowerBound.compareTo(aObject) <= 0)
- && (mUpperBound.compareTo(aObject) >= 0))
- {
- return Filter.ACCEPT;
- }
- else {
- return Filter.NEUTRAL;
+ if (!(aObject instanceof Integer)) {
+ return false;
}
+ return ((mLowerBound.compareTo(aObject) <= 0)
+ && (mUpperBound.compareTo(aObject) >= 0));
}
/** @see java.lang.Object#hashCode() */
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java
index cc8a803a4..5bcb8095a 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SeverityMatchFilter.java
@@ -25,14 +25,8 @@ import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
/**
* This is a very simple filter based on severity matching.
- * The filter admits two options severity and acceptOnMatch.
- * If there is an exact match between the value of the
- * severity option and the severity of the AuditEvent,
- * then the decide(AuditEvent) method
- * returns Filter.ACCEPT in case the acceptOnMatch option value is
- * set to true, if it is false then Filter.DENY is returned.
- * If there is no match, or the filtered Object is not
- * an AuditEvent, Filter.NEUTRAL is returned.
+ * The filter admits option severity and accepts an AuditEvent
+ * if its severity equals the filter's severity.
* @author Rick Giles
*/
public class SeverityMatchFilter
@@ -42,12 +36,6 @@ public class SeverityMatchFilter
/** the severity level to accept */
private SeverityLevel mSeverityLevel = SeverityLevel.ERROR;
- /**
- * Do we return ACCEPT when a match occurs?
- * Default is true.
- */
- private boolean mAcceptOnMatch = true;
-
/**
* Sets the severity level. The string should be one of the names
* defined in the SeverityLevel class.
@@ -60,64 +48,16 @@ public class SeverityMatchFilter
mSeverityLevel = SeverityLevel.getInstance(aSeverity);
}
- /**
- * Get the severity level's name.
- *
- * @return the check's severity level name.
- */
- public final String getSeverity()
- {
- return mSeverityLevel.getName();
- }
-
- /**
- * Sets whether we return ACCEPT or DENY when a match occurs.
- * @param aAcceptOnMatch if true return ACCEPT when a match
- * occurs; if false, return DENY.
- */
- public final void setAcceptOnMatch(boolean aAcceptOnMatch)
- {
- mAcceptOnMatch = aAcceptOnMatch;
- }
-
- /**
- * Returns whether we return ACCEPT or DENY when a match occurs.
- * @return true if return ACCEPT when a match occurs;
- * return false if DENY.
- */
- public boolean getAcceptOnMatch()
- {
- return mAcceptOnMatch;
- }
/** @see com.puppycrawl.tools.checkstyle.filter.Filter */
- public int decide(Object aObject)
+ public boolean accept(Object aObject)
{
if (!(aObject instanceof AuditEvent)) {
- return Filter.NEUTRAL;
+ return false;
}
final AuditEvent event = (AuditEvent) aObject;
- if (mSeverityLevel == null) {
- return Filter.NEUTRAL;
- }
-
- boolean matchOccurred = false;
- if (mSeverityLevel.equals(event.getSeverityLevel())) {
- matchOccurred = true;
- }
-
- if (matchOccurred) {
- if (mAcceptOnMatch) {
- return Filter.ACCEPT;
- }
- else {
- return Filter.DENY;
- }
- }
- else {
- return Filter.NEUTRAL;
- }
+ return mSeverityLevel.equals(event.getSeverityLevel());
}
}
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressElement.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressElement.java
index 3099580af..3b0241a0a 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressElement.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressElement.java
@@ -111,10 +111,10 @@ public class SuppressElement
}
/** @see com.puppycrawl.tools.checkstyle.api.Filter */
- public int decide(Object aObject)
+ public boolean accept(Object aObject)
{
if (!(aObject instanceof AuditEvent)) {
- return Filter.NEUTRAL;
+ return true;
}
final AuditEvent event = (AuditEvent) aObject;
@@ -125,30 +125,30 @@ public class SuppressElement
|| (event.getLocalizedMessage() == null)
|| !mCheckRegexp.match(event.getSourceName()))
{
- return Filter.NEUTRAL;
+ return true;
}
- // deny if no line/column matching
+ // reject if no line/column matching
if ((mLineFilter == null) && (mColumnFilter == null)) {
- return Filter.DENY;
+ return false;
}
- // deny line if it is accepted by the line CSV filter
+ // reject line if it is accepted by the line CSV filter
if (mLineFilter != null) {
final Integer line = new Integer(event.getLine());
- if (mLineFilter.decide(line) == Filter.ACCEPT) {
- return Filter.DENY;
+ if (mLineFilter.accept(line)) {
+ return false;
}
}
- // deny if column accepted by the column CSV filter
+ // reject if column accepted by the column CSV filter
if (mColumnFilter != null) {
final Integer column = new Integer(event.getColumn());
- if (mColumnFilter.decide(column) == Filter.ACCEPT) {
- return Filter.DENY;
+ if (mColumnFilter.accept(column)) {
+ return false;
}
}
- return Filter.NEUTRAL;
+ return true;
}
/** @see java.lang.Object#toString() */
diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressionFilter.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressionFilter.java
index 7c3eb1254..e195ed17a 100644
--- a/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressionFilter.java
+++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/filters/SuppressionFilter.java
@@ -22,7 +22,7 @@ import com.puppycrawl.tools.checkstyle.SuppressionsLoader;
import com.puppycrawl.tools.checkstyle.api.AutomaticBean;
import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
import com.puppycrawl.tools.checkstyle.api.Filter;
-import com.puppycrawl.tools.checkstyle.api.FilterChain;
+import com.puppycrawl.tools.checkstyle.api.FilterSet;
/**
* @@ -37,7 +37,7 @@ public class SuppressionFilter implements Filter { /** chain of individual suppresses */ - private FilterChain mFilterChain = new FilterChain(); + private FilterSet mFilterChain = new FilterSet(); /** * Loads the suppressions for a file. @@ -51,9 +51,9 @@ public class SuppressionFilter } /** @see com.puppycrawl.tools.checkstyle.api.Filter */ - public int decide(Object aObject) + public boolean accept(Object aObject) { - return mFilterChain.decide(aObject); + return mFilterChain.accept(aObject); } /** @see java.lang.Object#toString() */ diff --git a/src/tests/com/puppycrawl/tools/checkstyle/SuppressionsLoaderTest.java b/src/tests/com/puppycrawl/tools/checkstyle/SuppressionsLoaderTest.java index 191babd1a..97d48b28a 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/SuppressionsLoaderTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/SuppressionsLoaderTest.java @@ -5,7 +5,7 @@ import org.apache.regexp.RESyntaxException; import junit.framework.TestCase; import com.puppycrawl.tools.checkstyle.api.CheckstyleException; -import com.puppycrawl.tools.checkstyle.api.FilterChain; +import com.puppycrawl.tools.checkstyle.api.FilterSet; import com.puppycrawl.tools.checkstyle.filters.SuppressElement; /** @@ -17,20 +17,20 @@ public class SuppressionsLoaderTest extends TestCase public void testNoSuppressions() throws CheckstyleException { - final FilterChain fc = + final FilterSet fc = SuppressionsLoader.loadSuppressions( "src/testinputs/com/puppycrawl/tools/checkstyle/suppressions_none.xml"); - final FilterChain fc2 = new FilterChain(); + final FilterSet fc2 = new FilterSet(); assertEquals(fc, fc2); } public void testMultipleSuppression() throws CheckstyleException, RESyntaxException { - final FilterChain fc = + final FilterSet fc = SuppressionsLoader.loadSuppressions( "src/testinputs/com/puppycrawl/tools/checkstyle/suppressions_multiple.xml"); - final FilterChain fc2 = new FilterChain(); + final FilterSet fc2 = new FilterSet(); SuppressElement se0 = new SuppressElement("file0", "check0"); fc2.addFilter(se0); SuppressElement se1 = new SuppressElement("file1", "check1"); diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java index cbcf85f4a..d8e432438 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/AllTests.java @@ -14,10 +14,11 @@ public class AllTests TestSuite suite = new TestSuite("Test for com.puppycrawl.tools.checkstyle.filter"); //$JUnit-BEGIN$ + suite.addTest(new TestSuite(FilterSetTest.class)); suite.addTest(new TestSuite(IntMatchFilterTest.class)); suite.addTest(new TestSuite(IntRangeFilterTest.class)); suite.addTest(new TestSuite(CSVFilterTest.class)); - suite.addTest(new TestSuite(SupressElementTest.class)); + suite.addTest(new TestSuite(SuppressElementTest.class)); //$JUnit-END$ return suite; } diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/CSVFilterTest.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/CSVFilterTest.java index e77a5c116..e096841ce 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/filters/CSVFilterTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/CSVFilterTest.java @@ -4,54 +4,54 @@ import com.puppycrawl.tools.checkstyle.api.Filter; import junit.framework.TestCase; -/** Tests IntMatchFilter */ +/** Tests CSVFilter */ public class CSVFilterTest extends TestCase { public void testDecideSingle() { final Filter filter = new CSVFilter("0"); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("equal", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(1))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("equal", filter.accept(new Integer(0))); + assertFalse("greater than", filter.accept(new Integer(1))); } public void testDecidePair() { final Filter filter = new CSVFilter("0, 2"); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("equal 0", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(1))); - assertEquals("equal 2", Filter.ACCEPT, filter.decide(new Integer(2))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("equal 0", filter.accept(new Integer(0))); + assertFalse("greater than", filter.accept(new Integer(1))); + assertTrue("equal 2", filter.accept(new Integer(2))); } public void testDecideRange() { final Filter filter = new CSVFilter("0-2"); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("equal 0", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("equal 1", Filter.ACCEPT, filter.decide(new Integer(1))); - assertEquals("equal 2", Filter.ACCEPT, filter.decide(new Integer(2))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(3))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("equal 0", filter.accept(new Integer(0))); + assertTrue("equal 1", filter.accept(new Integer(1))); + assertTrue("equal 2", filter.accept(new Integer(2))); + assertFalse("greater than", filter.accept(new Integer(3))); } public void testDecideEmptyRange() { final Filter filter = new CSVFilter("2-0"); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("equal 0", Filter.NEUTRAL, filter.decide(new Integer(0))); - assertEquals("equal 1", Filter.NEUTRAL, filter.decide(new Integer(1))); - assertEquals("equal 2", Filter.NEUTRAL, filter.decide(new Integer(2))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(3))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertFalse("equal 0", filter.accept(new Integer(0))); + assertFalse("equal 1", filter.accept(new Integer(1))); + assertFalse("equal 2", filter.accept(new Integer(2))); + assertFalse("greater than", filter.accept(new Integer(3))); } public void testDecideRangePlusValue() { final Filter filter = new CSVFilter("0-2, 10"); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("equal 0", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("equal 1", Filter.ACCEPT, filter.decide(new Integer(1))); - assertEquals("equal 2", Filter.ACCEPT, filter.decide(new Integer(2))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(3))); - assertEquals("equal 10", Filter.ACCEPT, filter.decide(new Integer(10))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("equal 0", filter.accept(new Integer(0))); + assertTrue("equal 1", filter.accept(new Integer(1))); + assertTrue("equal 2", filter.accept(new Integer(2))); + assertFalse("greater than", filter.accept(new Integer(3))); + assertTrue("equal 10", filter.accept(new Integer(10))); } } diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/FilterSetTest.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/FilterSetTest.java new file mode 100644 index 000000000..01a32c386 --- /dev/null +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/FilterSetTest.java @@ -0,0 +1,40 @@ +package com.puppycrawl.tools.checkstyle.filters; + +import junit.framework.TestCase; + +import com.puppycrawl.tools.checkstyle.api.FilterSet; + +/** Tests SuppressElementFilter */ +public class FilterSetTest extends TestCase +{ + private FilterSet filter; + + public void setUp() + { + filter = new FilterSet(); + } + + public void testEmptyChain() + { + assertTrue("0", filter.accept(new Integer(0))); + } + + public void testOneFilter() + { + filter.addFilter(new IntMatchFilter(0)); + assertTrue("0", filter.accept(new Integer(0))); + assertFalse("1", filter.accept(new Integer(1))); + assertFalse("\"0\"", filter.accept("0")); + } + + public void testMultipleFilter() + { + filter.addFilter(new IntMatchFilter(0)); + filter.addFilter(new IntRangeFilter(0, 2)); + assertTrue("0", filter.accept(new Integer(0))); + assertFalse("1", filter.accept(new Integer(1))); + assertFalse("\"0\"", filter.accept("0")); + filter.addFilter(new IntRangeFilter(3, 4)); + assertFalse("0 not in [3,4]", filter.accept(new Integer(0))); + } +} diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/IntMatchFilterTest.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/IntMatchFilterTest.java index 87f57f122..e4c2cc127 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/filters/IntMatchFilterTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/IntMatchFilterTest.java @@ -10,9 +10,9 @@ public class IntMatchFilterTest extends TestCase public void testDecide() { final Filter filter = new IntMatchFilter(0); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("equal", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(1))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("equal", filter.accept(new Integer(0))); + assertFalse("greater than", filter.accept(new Integer(1))); } public void testEquals() diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/IntRangeFilterTest.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/IntRangeFilterTest.java index 9c2979553..a3194aa2f 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/filters/IntRangeFilterTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/IntRangeFilterTest.java @@ -4,35 +4,35 @@ import com.puppycrawl.tools.checkstyle.api.Filter; import junit.framework.TestCase; -/** Tests IntMatchFilter */ +/** Tests IntRangeFilter */ public class IntRangeFilterTest extends TestCase { public void testDecide() { final Filter filter = new IntRangeFilter(0, 10); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("in range", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("in range", Filter.ACCEPT, filter.decide(new Integer(5))); - assertEquals("in range", Filter.ACCEPT, filter.decide(new Integer(10))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(11))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("in range", filter.accept(new Integer(0))); + assertTrue("in range", filter.accept(new Integer(5))); + assertTrue("in range", filter.accept(new Integer(10))); + assertFalse("greater than", filter.accept(new Integer(11))); } public void testDecideSingle() { final Filter filter = new IntRangeFilter(0, 0); - assertEquals("less than", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("in range", Filter.ACCEPT, filter.decide(new Integer(0))); - assertEquals("greater than", Filter.NEUTRAL, filter.decide(new Integer(1))); + assertFalse("less than", filter.accept(new Integer(-1))); + assertTrue("in range", filter.accept(new Integer(0))); + assertFalse("greater than", filter.accept(new Integer(1))); } public void testDecideEmpty() { final Filter filter = new IntRangeFilter(10, 0); - assertEquals("out", Filter.NEUTRAL, filter.decide(new Integer(-1))); - assertEquals("out", Filter.NEUTRAL, filter.decide(new Integer(0))); - assertEquals("out", Filter.NEUTRAL, filter.decide(new Integer(5))); - assertEquals("out", Filter.NEUTRAL, filter.decide(new Integer(10))); - assertEquals("out", Filter.NEUTRAL, filter.decide(new Integer(11))); + assertFalse("out", filter.accept(new Integer(-1))); + assertFalse("out", filter.accept(new Integer(0))); + assertFalse("out", filter.accept(new Integer(5))); + assertFalse("out", filter.accept(new Integer(10))); + assertFalse("out", filter.accept(new Integer(11))); } public void testEquals() diff --git a/src/tests/com/puppycrawl/tools/checkstyle/filters/SupressElementTest.java b/src/tests/com/puppycrawl/tools/checkstyle/filters/SuppressElementTest.java similarity index 82% rename from src/tests/com/puppycrawl/tools/checkstyle/filters/SupressElementTest.java rename to src/tests/com/puppycrawl/tools/checkstyle/filters/SuppressElementTest.java index b01eb65ac..3999da9d8 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/filters/SupressElementTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/filters/SuppressElementTest.java @@ -3,13 +3,12 @@ package com.puppycrawl.tools.checkstyle.filters; import org.apache.regexp.RESyntaxException; import com.puppycrawl.tools.checkstyle.api.AuditEvent; -import com.puppycrawl.tools.checkstyle.api.Filter; import com.puppycrawl.tools.checkstyle.api.LocalizedMessage; import junit.framework.TestCase; -/** Tests IntMatchFilter */ -public class SupressElementTest extends TestCase +/** Tests SuppressElementFilter */ +public class SuppressElementTest extends TestCase { private SuppressElement filter; @@ -22,7 +21,7 @@ public class SupressElementTest extends TestCase public void testDecideDefault() { final AuditEvent ev = new AuditEvent(this, "Test.java"); - assertEquals(ev.getFileName(), Filter.NEUTRAL, filter.decide(ev)); + assertTrue(ev.getFileName(), filter.accept(ev)); } public void testDecideLocalizedMessage() @@ -31,7 +30,7 @@ public class SupressElementTest extends TestCase new LocalizedMessage(0, 0, "", "", null, this.getClass()); final AuditEvent ev = new AuditEvent(this, "ATest.java", message); //deny because there are matches on file and check names - assertEquals("Names match", Filter.DENY, filter.decide(ev)); + assertFalse("Names match", filter.accept(ev)); } public void testDecideByLine() @@ -41,9 +40,9 @@ public class SupressElementTest extends TestCase final AuditEvent ev = new AuditEvent(this, "ATest.java", message); //deny because there are matches on file name, check name, and line filter.setLines("1-10"); - assertEquals("In range 1-10)", Filter.DENY, filter.decide(ev)); + assertFalse("In range 1-10", filter.accept(ev)); filter.setLines("1-9, 11"); - assertEquals("Not in 1-9, 11)", Filter.NEUTRAL, filter.decide(ev)); + assertTrue("Not in 1-9, 11", filter.accept(ev)); } public void testDecideByColumn() @@ -53,9 +52,9 @@ public class SupressElementTest extends TestCase final AuditEvent ev = new AuditEvent(this, "ATest.java", message); //deny because there are matches on file name, check name, and column filter.setColumns("1-10"); - assertEquals("In range 1-10)", Filter.DENY, filter.decide(ev)); + assertFalse("In range 1-10", filter.accept(ev)); filter.setColumns("1-9, 11"); - assertEquals("Not in 1-9, 11)", Filter.NEUTRAL, filter.decide(ev)); + assertTrue("Not in 1-9, 1)", filter.accept(ev)); } public void testEquals() throws RESyntaxException