## net.sf.saxon.functions
Class Matches

    java.lang.Object
      |
      +--net.sf.saxon.expr.ComputedExpression
            |
            +--net.sf.saxon.expr.FunctionCall
                  |
                  +--net.sf.saxon.functions.SystemFunction
                        |
                        +--net.sf.saxon.functions.Matches

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class Matches
extends SystemFunction

This class implements the matches() function for regular expression matching

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.functions.SystemFunction
`operation`

Fields inherited from class net.sf.saxon.expr.FunctionCall
`argument`

Fields inherited from class net.sf.saxon.expr.ComputedExpression
`locationId, staticProperties`

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`Matches()`

Method Summary
`Item` `evaluateItem(XPathContext c)` Evaluate the matches() function to give a Boolean value.
`static int` `setFlags(java.lang.String inFlags)` Set the Java flags from the supplied XPath flags.
`Expression` `simplify(StaticContext env)` Simplify and validate.
`protected static java.util.regex.Pattern` `tryToCompile(Expression[] args, int patternArg, int flagsArg)` Try to precompile the arguments to the function.

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, checkArguments, computeCardinality, display, getDetails, getItemType, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`analyze, checkArgumentCount, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, preEvaluate, promote, setArguments, setFunctionNameCode, simplifyArguments`

Methods inherited from class net.sf.saxon.expr.ComputedExpression

`adoptChildExpression, computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, typeError`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Matches

    public Matches()

Method Detail

### simplify

    public Expression simplify(StaticContext env)
                        throws XPathException

  Simplify and validate. This is a pure function so it can be simplified in advance if the arguments are known

  Specified by:
    `simplify` in interface `Expression`
  Overrides:
    `simplify` in class `FunctionCall`
  Returns:
    the simplified expression
  Throws:
    `StaticError` - if any error is found (e.g. invalid regular expression)
    `XPathException` - if an error is discovered during expression rewriting

### setFlags

    public static int setFlags(java.lang.String inFlags)
                        throws StaticError

  Set the Java flags from the supplied XPath flags.

  Parameters:
    `inFlags` - the flags as a string, e.g. "im"
  Returns:
    the flags as a bit-significant integer
  Throws:
    `StaticError` - if the supplied value is invalid

### tryToCompile

    protected static java.util.regex.Pattern tryToCompile(Expression[] args,
                                                          int patternArg,
                                                          int flagsArg)
                                                   throws StaticError

  Try to precompile the arguments to the function. This method is shared by the implementations of the three XPath functions matches(), replace(), and tokenize().

  Parameters:
    `args` - the supplied arguments to the function, as an array
    `patternArg` - the position of the argument containing the regular expression
    `flagsArg` - the position of the argument containing the flags
  Returns:
    the compiled regular expression, or null indicating that the information is not available statically so it cannot be precompiled
  Throws:
    `StaticError` - if any failure occurs, in particular, if the regular expression is invalid

### evaluateItem

    public Item evaluateItem(XPathContext c)
                      throws XPathException

  Evaluate the matches() function to give a Boolean value.

  Specified by:
    `evaluateItem` in interface `Expression`
  Overrides:
    `evaluateItem` in class `ComputedExpression`
  Parameters:
    `c` - The dynamic evaluation context
  Returns:
    the result as a BooleanValue, or null to indicate the empty sequence
  Throws:
    `XPathException` - on an error