FileDocCategorySizeDatePackage
Jdk14RegexpMatcher.javaAPI DocApache Ant 1.705299Wed Dec 13 06:16:20 GMT 2006org.apache.tools.ant.util.regexp

Jdk14RegexpMatcher

public class Jdk14RegexpMatcher extends Object implements RegexpMatcher
Implementation of RegexpMatcher for the built-in regexp matcher of JDK 1.4. UNIX_LINES option is enabled as a default.

Fields Summary
private String
pattern
Constructors Summary
public Jdk14RegexpMatcher()
Constructor for JakartaOroRegexp

    
Methods Summary
protected java.util.regex.PatterngetCompiledPattern(int options)
Get a compiled representation of the regexp pattern

param
options the options
return
the compiled pattern
throws
BuildException on error

        int cOptions = getCompilerOptions(options);
        try {
            Pattern p = Pattern.compile(this.pattern, cOptions);
            return p;
        } catch (PatternSyntaxException e) {
            throw new BuildException(e);
        }
    
protected intgetCompilerOptions(int options)
Convert the generic options to the regex compiler specific options.

param
options the generic options
return
the specific options

        // be strict about line separator
        int cOptions = Pattern.UNIX_LINES;

        if (RegexpUtil.hasFlag(options, MATCH_CASE_INSENSITIVE)) {
            cOptions |= Pattern.CASE_INSENSITIVE;
        }
        if (RegexpUtil.hasFlag(options, MATCH_MULTILINE)) {
            cOptions |= Pattern.MULTILINE;
        }
        if (RegexpUtil.hasFlag(options, MATCH_SINGLELINE)) {
            cOptions |= Pattern.DOTALL;
        }

        return cOptions;
    
public java.util.VectorgetGroups(java.lang.String argument)
Returns a Vector of matched groups found in the argument using default options.

Group 0 will be the full match, the rest are the parenthesized subexpressions

.

param
argument the string to match against
return
the vector of groups
throws
BuildException on error

        return getGroups(argument, MATCH_DEFAULT);
    
public java.util.VectorgetGroups(java.lang.String input, int options)
Returns a Vector of matched groups found in the argument.

Group 0 will be the full match, the rest are the parenthesized subexpressions

.

param
input the string to match against
param
options the regex options to use
return
the vector of groups
throws
BuildException on error

        Pattern p = getCompiledPattern(options);
        Matcher matcher = p.matcher(input);
        if (!matcher.find()) {
            return null;
        }
        Vector v = new Vector();
        int cnt = matcher.groupCount();
        for (int i = 0; i <= cnt; i++) {
            String match = matcher.group(i);
            // treat non-matching groups as empty matches
            if (match == null) {
                match = "";
            }
            v.addElement(match);
        }
        return v;
    
public java.lang.StringgetPattern()
Get a String representation of the regexp pattern

return
the pattern
throws
BuildException on error

        return pattern;
    
public booleanmatches(java.lang.String argument)
Does the given argument match the pattern using default options?

param
argument the string to match against
return
true if the pattern matches
throws
BuildException on error

        return matches(argument, MATCH_DEFAULT);
    
public booleanmatches(java.lang.String input, int options)
Does the given argument match the pattern?

param
input the string to match against
param
options the regex options to use
return
true if the pattern matches
throws
BuildException on error

        try {
            Pattern p = getCompiledPattern(options);
            return p.matcher(input).find();
        } catch (Exception e) {
            throw new BuildException(e);
        }
    
public voidsetPattern(java.lang.String pattern)
Set the regexp pattern from the String description.

param
pattern the pattern to match

        this.pattern = pattern;