|
|||||||||
| Home >> All >> org >> apache >> webdav >> [ ant overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.webdav.ant
Class Scanner

java.lang.Objectorg.apache.webdav.ant.Scanner
- Direct Known Subclasses:
- CollectionScanner
- public abstract class Scanner
- extends java.lang.Object
Class for scanning a directory for files/directories that match a certain criteria.
These criteria consist of a set of include and exclude patterns. With these patterns, you can select which files you want to have included, and which files you want to have excluded.
The idea is simple. A given directory is recursively scanned for all files and directories. Each file/directory is matched against a set of include and exclude patterns. Only files/directories that match at least one pattern of the include pattern list, and don't match a pattern of the exclude pattern list will be placed in the list of files/directories found.
When no list of include patterns is supplied, "**" will be used, which means that everything will be matched. When no list of exclude patterns is supplied, an empty list is used, such that nothing will be excluded.
The pattern matching is done as follows:
The name to be matched is split up in path segments. A path segment is the
name of a directory or file, which is bounded by
File.separator ('/' under UNIX, '\' under Windows).
E.g. "abc/def/ghi/xyz.java" is split up in the segments "abc", "def", "ghi"
and "xyz.java".
The same is done for the pattern against which should be matched.
Then the segments of the name and the pattern will be matched against each other. When '**' is used for a path segment in the pattern, then it matches zero or more path segments of the name.
There are special case regarding the use of File.separators at
the beginningof the pattern and the string to match:
When a pattern starts with a File.separator, the string
to match must also start with a File.separator.
When a pattern does not start with a File.separator, the
string to match may not start with a File.separator.
When one of these rules is not obeyed, the string will not
match.
When a name path segment is matched against a pattern path segment, the following special characters can be used: '*' matches zero or more characters, '?' matches one character.
Examples:
"**\*.class" matches all .class files/dirs in a directory tree.
"test\a??.java" matches all files/dirs which start with an 'a', then two more characters and then ".java", in a directory called test.
"**" matches everything in a directory tree.
"**\test\**\XYZ*" matches all files/dirs that start with "XYZ" and where there is a parent directory called test (e.g. "abc\test\def\ghi\XYZ123").
Example of usage:
String[] includes = {"*\*\*.class"};
String[] excludes = {"modules\\\*\**"};
ds.setIncludes(includes);
ds.setExcludes(excludes);
ds.setBasedir(new File("test"));
ds.scan();
System.out.println("FILES:");
String[] files = ds.getIncludedFiles();
for (int i = 0; i < files.length;i++) {
System.out.println(files[i]);
}
This will scan a directory called test for .class files, but excludes all
.class files in all directories under a directory called "modules"
| Field Summary | |
protected java.util.List |
dirsExcluded
The files that where found and matched at least one includes, and also matched at least one excludes. |
protected java.util.List |
dirsIncluded
The directories that where found and matched at least one includes, and matched no excludes. |
protected java.util.List |
dirsNotIncluded
The directories that where found and did not match any includes. |
private java.util.List |
excludes
The patterns for the files that should be excluded. |
protected java.util.List |
filesExcluded
The files that where found and matched at least one includes, and also matched at least one excludes. |
protected java.util.List |
filesIncluded
The files that where found and matched at least one includes, and matched no excludes. |
protected java.util.List |
filesNotIncluded
The files that where found and did not match any includes. |
private java.util.List |
includes
The patterns for the files that should be included. |
protected boolean |
isCaseSensitive
|
protected static java.lang.String |
SEPARATOR
|
protected static char |
SEPARATOR_CHAR
|
| Constructor Summary | |
Scanner()
Constructor. |
|
| Method Summary | |
void |
addExcludes(java.lang.String[] excludes)
|
void |
addIncludes(java.lang.String[] includes)
|
java.lang.String[] |
getExcludedDirectories()
Get the names of the directories that matched at least one of the include patterns, an matched also at least one of the exclude patterns. |
java.lang.String[] |
getExcludedFiles()
Get the names of the files that matched at least one of the include patterns, an matched also at least one of the exclude patterns. |
java.lang.String[] |
getIncludedDirectories()
Get the names of the directories that matched at least one of the include patterns, an matched none of the exclude patterns. |
java.lang.String[] |
getIncludedFiles()
Get the names of the files that matched at least one of the include patterns, an matched none of the exclude patterns. |
java.lang.String[] |
getNotIncludedDirectories()
Get the names of the directories that matched at none of the include patterns. |
java.lang.String[] |
getNotIncludedFiles()
Get the names of the files that matched at none of the include patterns. |
protected boolean |
isExcluded(java.lang.String name)
Tests whether a name matches against at least one exclude pattern. |
protected boolean |
isIncluded(java.lang.String name)
Tests whether a name matches against at least one include pattern. |
static boolean |
match(java.lang.String pattern,
java.lang.String str,
boolean isCaseSensitive)
Tests whether or not a string matches against a pattern. |
static boolean |
matchPath(java.lang.String pattern,
java.lang.String str,
boolean isCaseSensitive)
Tests whether or not a given path matches a given pattern. |
private java.lang.String |
noramlizePattern(java.lang.String pattern)
|
abstract void |
scan()
Scans the base directory for files that match at least one include pattern, and don't match any exclude patterns. |
void |
setCaseSensitive(boolean val)
|
void |
setExcludes(java.lang.String[] excludes)
Sets the set of exclude patterns to use. |
void |
setIncludes(java.lang.String[] includes)
Sets the set of include patterns to use. |
private static java.lang.String[] |
tokenizePathAsArray(java.lang.String path)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
SEPARATOR
protected static final java.lang.String SEPARATOR
- See Also:
- Constant Field Values
SEPARATOR_CHAR
protected static final char SEPARATOR_CHAR
- See Also:
- Constant Field Values
includes
private java.util.List includes
- The patterns for the files that should be included.
excludes
private java.util.List excludes
- The patterns for the files that should be excluded.
filesIncluded
protected java.util.List filesIncluded
- The files that where found and matched at least one includes, and matched
no excludes.
filesNotIncluded
protected java.util.List filesNotIncluded
- The files that where found and did not match any includes.
filesExcluded
protected java.util.List filesExcluded
- The files that where found and matched at least one includes, and also
matched at least one excludes.
dirsIncluded
protected java.util.List dirsIncluded
- The directories that where found and matched at least one includes, and
matched no excludes.
dirsNotIncluded
protected java.util.List dirsNotIncluded
- The directories that where found and did not match any includes.
dirsExcluded
protected java.util.List dirsExcluded
- The files that where found and matched at least one includes, and also
matched at least one excludes.
isCaseSensitive
protected boolean isCaseSensitive
| Constructor Detail |
Scanner
public Scanner()
- Constructor.
| Method Detail |
setIncludes
public void setIncludes(java.lang.String[] includes)
- Sets the set of include patterns to use. All '/' and '\' characters are
replaced by
File.separatorChar. So the separator used need not matchFile.separatorChar.When a pattern ends with a '/' or '\', "**" is appended.
addIncludes
public void addIncludes(java.lang.String[] includes)
setExcludes
public void setExcludes(java.lang.String[] excludes)
- Sets the set of exclude patterns to use. All '/' and '\' characters are
replaced by
File.separatorChar. So the separator used need not matchFile.separatorChar.When a pattern ends with a '/' or '\', "**" is appended.
addExcludes
public void addExcludes(java.lang.String[] excludes)
noramlizePattern
private java.lang.String noramlizePattern(java.lang.String pattern)
setCaseSensitive
public void setCaseSensitive(boolean val)
scan
public abstract void scan()
- Scans the base directory for files that match at least one include
pattern, and don't match any exclude patterns.
isIncluded
protected boolean isIncluded(java.lang.String name)
- Tests whether a name matches against at least one include pattern.
isExcluded
protected boolean isExcluded(java.lang.String name)
- Tests whether a name matches against at least one exclude pattern.
getIncludedFiles
public java.lang.String[] getIncludedFiles()
- Get the names of the files that matched at least one of the include
patterns, an matched none of the exclude patterns.
The names are relative to the basedir.
getNotIncludedFiles
public java.lang.String[] getNotIncludedFiles()
- Get the names of the files that matched at none of the include patterns.
The names are relative to the basedir.
getExcludedFiles
public java.lang.String[] getExcludedFiles()
- Get the names of the files that matched at least one of the include
patterns, an matched also at least one of the exclude patterns.
The names are relative to the basedir.
getIncludedDirectories
public java.lang.String[] getIncludedDirectories()
- Get the names of the directories that matched at least one of the include
patterns, an matched none of the exclude patterns.
The names are relative to the basedir.
getNotIncludedDirectories
public java.lang.String[] getNotIncludedDirectories()
- Get the names of the directories that matched at none of the include
patterns.
The names are relative to the basedir.
getExcludedDirectories
public java.lang.String[] getExcludedDirectories()
- Get the names of the directories that matched at least one of the include
patterns, an matched also at least one of the exclude patterns.
The names are relative to the basedir.
match
public static boolean match(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)
- Tests whether or not a string matches against a pattern.
The pattern may contain two special characters:
'*' means zero or more characters
'?' means one and only one character
matchPath
public static boolean matchPath(java.lang.String pattern, java.lang.String str, boolean isCaseSensitive)
- Tests whether or not a given path matches a given pattern.
tokenizePathAsArray
private static java.lang.String[] tokenizePathAsArray(java.lang.String path)
|
|||||||||
| Home >> All >> org >> apache >> webdav >> [ ant overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.apache.webdav.ant.Scanner