diff --git a/docs/manual/CoreTypes/filterchain.html b/docs/manual/CoreTypes/filterchain.html index df9cf27d8..54d9df4a3 100644 --- a/docs/manual/CoreTypes/filterchain.html +++ b/docs/manual/CoreTypes/filterchain.html @@ -1365,6 +1365,8 @@ Delete tabs from lines, trim the lines and removes empty lines.

Suppresses all tokens that match their ancestor token. It is most useful if combined with a sort filter.

+

This filter may be used directly within a filterchain.

+

Example:

This suppresses duplicate lines. diff --git a/src/main/org/apache/tools/ant/filters/UniqFilter.java b/src/main/org/apache/tools/ant/filters/UniqFilter.java index a7d2334e4..e72d5f581 100644 --- a/src/main/org/apache/tools/ant/filters/UniqFilter.java +++ b/src/main/org/apache/tools/ant/filters/UniqFilter.java @@ -26,12 +26,10 @@ package org.apache.tools.ant.filters; * * @since Ant 1.8.0 */ -public class UniqFilter implements TokenFilter.Filter { +public class UniqFilter extends TokenFilter.ChainableReaderFilter { private String lastLine = null; - public UniqFilter() { } - public String filter(String string) { return lastLine == null || !lastLine.equals(string) ? (lastLine = string) : null; diff --git a/src/tests/antunit/filters/uniq-test.xml b/src/tests/antunit/filters/uniq-test.xml index 0957b9ebe..832ec944d 100644 --- a/src/tests/antunit/filters/uniq-test.xml +++ b/src/tests/antunit/filters/uniq-test.xml @@ -23,6 +23,18 @@ + + + + + + + + +