org.apache.xalan.extensions

## Class ExpressionVisitor

- java.lang.Object
- - org.apache.xpath.XPathVisitor
  - - org.apache.xalan.extensions.ExpressionVisitor

    public class ExpressionVisitor
    extends XPathVisitor

When `StylesheetHandler` creates an `XPath`, the ExpressionVisitor visits the XPath expression. For any extension functions it encounters, it instructs StylesheetRoot to register the extension namespace. This mechanism is required to locate extension functions that may be embedded within an expression.

### Constructor Summary

Constructors
Constructor and Description
`ExpressionVisitor(StylesheetRoot sroot)` The constructor sets the StylesheetRoot variable which is used to register extension namespaces.

### Method Summary

Methods
`boolean` `visitFunction(ExpressionOwner owner, Function func)` If the function is an extension function, register the namespace.

### Methods inherited from class org.apache.xpath.XPathVisitor

`visitBinaryOperation, visitLocationPath, visitMatchPattern, visitNumberLiteral, visitPredicate, visitStep, visitStringLiteral, visitUnaryOperation, visitUnionPath, visitUnionPattern, visitVariableRef`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ExpressionVisitor

    public ExpressionVisitor(StylesheetRoot sroot)

The constructor sets the StylesheetRoot variable which is used to register extension namespaces.

Parameters:
  `sroot` - the StylesheetRoot that is being constructed.

### Method Detail

#### visitFunction

    public boolean visitFunction(ExpressionOwner owner,
                        Function func)

If the function is an extension function, register the namespace.

Overrides:
  `visitFunction` in class `XPathVisitor`
Parameters:
  `owner` - The current XPath object that owns the expression.
  `func` - The function currently being visited.
Returns:
  true to continue the visit in the subtree, if any.