FileDocCategorySizeDatePackage
JakartaOroMatcher.javaAPI DocApache Ant 1.705365Wed Dec 13 06:16:22 GMT 2006org.apache.tools.ant.util.regexp

JakartaOroMatcher

public class JakartaOroMatcher extends Object implements RegexpMatcher
Implementation of RegexpMatcher for Jakarta-ORO.

Fields Summary
private String
pattern
protected final org.apache.oro.text.regex.Perl5Compiler
compiler
protected final org.apache.oro.text.regex.Perl5Matcher
matcher
Constructors Summary
public JakartaOroMatcher()
Constructor for JakartaOroMatcher.

    // CheckStyle:VisibilityModifier ON

            
      
    
Methods Summary
protected org.apache.oro.text.regex.PatterngetCompiledPattern(int options)
Get a compiled representation of the regexp pattern

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

        try {
            // compute the compiler options based on the input options first
            Pattern p = compiler.compile(pattern, getCompilerOptions(options));
            return p;
        } catch (Exception 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

        int cOptions = Perl5Compiler.DEFAULT_MASK;

        if (RegexpUtil.hasFlag(options, MATCH_CASE_INSENSITIVE)) {
            cOptions |= Perl5Compiler.CASE_INSENSITIVE_MASK;
        }
        if (RegexpUtil.hasFlag(options, MATCH_MULTILINE)) {
            cOptions |= Perl5Compiler.MULTILINE_MASK;
        }
        if (RegexpUtil.hasFlag(options, MATCH_SINGLELINE)) {
            cOptions |= Perl5Compiler.SINGLELINE_MASK;
        }

        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

        if (!matches(input, options)) {
            return null;
        }
        Vector v = new Vector();
        MatchResult mr = matcher.getMatch();
        int cnt = mr.groups();
        for (int i = 0; i < cnt; i++) {
            String match = mr.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

        return this.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

        Pattern p = getCompiledPattern(options);
        return matcher.contains(input, p);
    
public voidsetPattern(java.lang.String pattern)
Set the regexp pattern from the String description.

param
pattern the pattern to match

        this.pattern = pattern;