|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.oro.text.GlobCompiler
The GlobCompiler class will compile a glob expression into a Perl5Pattern that may be used to match patterns in conjunction with Perl5Matcher. Rather than create extra GlobMatcher and GlobPattern classes tailored to the task of matching glob expressions, we have simply reused the Perl5 regular expression classes from org.apache.oro.text.regex by making GlobCompiler translate a glob expression into a Perl5 expression that is compiled by a Perl5Compiler instance internal to the GlobCompiler.
Because there are various similar glob expression syntaxes, GlobCompiler
tries to provide a small amount of customization by providing the
STAR_CANNOT_MATCH_NULL_MASK
and QUESTION_MATCHES_ZERO_OR_ONE_MASK
compilation options.
The GlobCompiler expression syntax is based on Unix shell glob expressions but should be usable to simulate Win32 wildcards. The following syntax is supported:
Please remember that the when you construct a Java string in Java code, the backslash character is itself a special Java character, and it must be double backslashed to represent single backslash in a regular expression.
PatternCompiler
,
Perl5Matcher
Field Summary | |
static int |
CASE_INSENSITIVE_MASK
A mask passed as an option to the compile methods
to indicate a compiled glob expression should be case insensitive. |
static int |
DEFAULT_MASK
The default mask for the compile methods. |
static int |
QUESTION_MATCHES_ZERO_OR_ONE_MASK
A mask passed as an option to the compile methods
to indicate that a ? should not be allowed to match the null string. |
static int |
READ_ONLY_MASK
A mask passed as an option to the compile methods
to indicate that the resulting Perl5Pattern should be treated as a
read only data structure by Perl5Matcher, making it safe to share
a single Perl5Pattern instance among multiple threads without needing
synchronization. |
static int |
STAR_CANNOT_MATCH_NULL_MASK
A mask passed as an option to the compile methods
to indicate that a * should not be allowed to match the null string. |
Constructor Summary | |
GlobCompiler()
The default GlobCompiler constructor. |
Method Summary | |
Pattern |
compile(char[] pattern)
Same as calling compile(pattern, GlobCompiler.DEFAULT_MASK); |
Pattern |
compile(char[] pattern,
int options)
Compiles a Glob expression into a Perl5Pattern instance that can be used by a Perl5Matcher object to perform pattern matching. |
Pattern |
compile(java.lang.String pattern)
Same as calling compile(pattern, GlobCompiler.DEFAULT_MASK); |
Pattern |
compile(java.lang.String pattern,
int options)
Compiles a Glob expression into a Perl5Pattern instance that can be used by a Perl5Matcher object to perform pattern matching. |
static java.lang.String |
globToPerl5(char[] pattern,
int options)
This static method is the basic engine of the Glob PatternCompiler implementation. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int DEFAULT_MASK
compile
methods.
It is equal to 0. The default behavior is for a glob expression to
be case sensitive unless it is compiled with the CASE_INSENSITIVE_MASK
option.
public static final int CASE_INSENSITIVE_MASK
compile
methods
to indicate a compiled glob expression should be case insensitive.
public static final int STAR_CANNOT_MATCH_NULL_MASK
compile
methods
to indicate that a * should not be allowed to match the null string.
The normal behavior of the * metacharacter is that it may match any
0 or more characters. This mask causes it to match 1 or more
characters of anything.
public static final int QUESTION_MATCHES_ZERO_OR_ONE_MASK
compile
methods
to indicate that a ? should not be allowed to match the null string.
The normal behavior of the ? metacharacter is that it may match any 1
character. This mask causes it to match 0 or 1 characters.
public static final int READ_ONLY_MASK
compile
methods
to indicate that the resulting Perl5Pattern should be treated as a
read only data structure by Perl5Matcher, making it safe to share
a single Perl5Pattern instance among multiple threads without needing
synchronization. Without this option, Perl5Matcher reserves the right
to store heuristic or other information in Perl5Pattern that might
accelerate future matches. When you use this option, Perl5Matcher will
not store or modify any information in a Perl5Pattern. Use this option
when you want to share a Perl5Pattern instance among multiple threads
using different Perl5Matcher instances.
Constructor Detail |
public GlobCompiler()
Method Detail |
public static java.lang.String globToPerl5(char[] pattern, int options)
pattern
- A character array representation of a Glob pattern.
public Pattern compile(char[] pattern, int options) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A Glob expression to compile.options
- A set of flags giving the compiler instructions on
how to treat the glob expression. The flags
are a logical OR of any number of the 3 MASK
constants. For example:
regex = compiler.compile(pattern, GlobCompiler. CASE_INSENSITIVE_MASK | GlobCompiler.STAR_CANNOT_MATCH_NULL_MASK);This says to compile the pattern so that * cannot match the null string and to perform matches in a case insensitive manner.
MalformedPatternException
- If the compiled expression
is not a valid Glob expression.public Pattern compile(char[] pattern) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A regular expression to compile.
MalformedPatternException
- If the compiled expression
is not a valid Glob expression.public Pattern compile(java.lang.String pattern) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A regular expression to compile.
MalformedPatternException
- If the compiled expression
is not a valid Glob expression.public Pattern compile(java.lang.String pattern, int options) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A Glob expression to compile.options
- A set of flags giving the compiler instructions on
how to treat the glob expression. The flags
are a logical OR of any number of the 3 MASK
constants. For example:
regex = compiler.compile("*.*", GlobCompiler. CASE_INSENSITIVE_MASK | GlobCompiler.STAR_CANNOT_MATCH_NULL_MASK);This says to compile the pattern so that * cannot match the null string and to perform matches in a case insensitive manner.
MalformedPatternException
- If the compiled expression
is not a valid Glob expression.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |