net.sf.saxon.pattern
Class PatternWithPredicate

java.lang.Object
  extended by net.sf.saxon.pattern.Pattern
      extended by net.sf.saxon.pattern.PatternWithPredicate
All Implemented Interfaces:
Serializable, SourceLocator, Container, PatternFinder

public class PatternWithPredicate
extends Pattern

See Also:
Serialized Form

Constructor Summary
PatternWithPredicate(Pattern basePattern, Expression predicate)
           
 
Method Summary
 Pattern analyze(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType)
          Type-check the pattern.
 double getDefaultPriority()
          Determine the default priority to use if this pattern appears as a match pattern for a template with no explicit priority attribute.
 ItemType getItemType()
          Get an ItemType that all the items matching this pattern must satisfy
 Iterator iterateSubExpressions()
          Iterate over the subexpressions within this pattern
 boolean matches(Item item, XPathContext context)
          Determine whether this Pattern matches the given Node.
 
Methods inherited from class net.sf.saxon.pattern.Pattern
allocateSlots, getColumnNumber, getContainerGranularity, getDependencies, getExecutable, getFingerprint, getHostLanguage, getLineNumber, getLocationProvider, getNodeKind, getPublicId, getSystemId, internalMatches, make, matchesBeneathAnchor, promote, replaceSubExpression, resolveCurrent, selectNodes, setExecutable, setLineNumber, setOriginalText, setSystemId, simplify, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PatternWithPredicate

public PatternWithPredicate(Pattern basePattern,
                            Expression predicate)
Method Detail

matches

public boolean matches(Item item,
                       XPathContext context)
                throws XPathException
Determine whether this Pattern matches the given Node. This is the main external interface for matching patterns: it sets current() to the node being tested

Specified by:
matches in class Pattern
Parameters:
item - The NodeInfo representing the Element or other node to be tested against the Pattern
context - The dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().
Returns:
true if the node matches the Pattern, false otherwise
Throws:
XPathException

getItemType

public ItemType getItemType()
Get an ItemType that all the items matching this pattern must satisfy

Specified by:
getItemType in class Pattern
Returns:
an ItemType, as specific as possible, which all the matching items satisfy

iterateSubExpressions

public Iterator iterateSubExpressions()
Iterate over the subexpressions within this pattern

Overrides:
iterateSubExpressions in class Pattern
Returns:
an iterator over the subexpressions. Default implementation returns an empty sequence

analyze

public Pattern analyze(ExpressionVisitor visitor,
                       ExpressionVisitor.ContextItemType contextItemType)
                throws XPathException
Type-check the pattern.

Overrides:
analyze in class Pattern
Parameters:
visitor - the expression visitor
contextItemType - the type of the context item at the point where the pattern is defined. Set to null if it is known that the context item is undefined.
Returns:
the optimised Pattern
Throws:
XPathException

getDefaultPriority

public double getDefaultPriority()
Determine the default priority to use if this pattern appears as a match pattern for a template with no explicit priority attribute.

Overrides:
getDefaultPriority in class Pattern
Returns:
the default priority for the pattern


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.