net.sf.saxon.functions
Class NamePart

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.expr.FunctionCall
          extended by net.sf.saxon.functions.SystemFunction
              extended by net.sf.saxon.functions.NamePart
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator

public class NamePart
extends SystemFunction

This class supports the name(), local-name(), and namespace-uri() functions from XPath 1.0, and also the XSLT generate-id() function

See Also:
Serialized Form

Field Summary
static int DOCUMENT_URI
           
static int GENERATE_ID
           
static int LOCAL_NAME
           
static int NAME
           
static int NAMESPACE_URI
           
static int NODE_NAME
           
 
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.Expression
EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, PROCESS_METHOD, PUSH_SELECTION, staticProperties, WATCH_METHOD
 
Constructor Summary
NamePart()
           
 
Method Summary
 int computeDependencies()
          Compute the dependencies of an expression, as the union of the dependencies of its subexpressions.
 int computeSpecialProperties()
          Determine the special properties of this expression.
 Item evaluateItem(XPathContext c)
          Evaluate the function in a string context
static AnyURIValue getDocumentURI(NodeInfo node, XPathContext c)
           
static boolean isGenerateIdFunction(Expression exp)
          Test whether an expression is a call on the generate-id() function
 Expression simplify(ExpressionVisitor visitor)
          Simplify and validate.
 
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, checkArguments, computeCardinality, copy, getDetails, getErrorCodeForTypeErrors, getImplementationMethod, getItemType, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault
 
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplifyArguments, toString, typeCheck
 
Methods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME

public static final int NAME
See Also:
Constant Field Values

LOCAL_NAME

public static final int LOCAL_NAME
See Also:
Constant Field Values

NAMESPACE_URI

public static final int NAMESPACE_URI
See Also:
Constant Field Values

GENERATE_ID

public static final int GENERATE_ID
See Also:
Constant Field Values

DOCUMENT_URI

public static final int DOCUMENT_URI
See Also:
Constant Field Values

NODE_NAME

public static final int NODE_NAME
See Also:
Constant Field Values
Constructor Detail

NamePart

public NamePart()
Method Detail

simplify

public Expression simplify(ExpressionVisitor visitor)
                    throws XPathException
Simplify and validate.

Overrides:
simplify in class FunctionCall
Parameters:
visitor - an expression visitor
Returns:
the simplified expression
Throws:
XPathException - if an error is discovered during expression rewriting

computeSpecialProperties

public int computeSpecialProperties()
Determine the special properties of this expression. The generate-id() function is a special case: it is considered creative if its operand is creative, so that generate-id(f()) is not taken out of a loop

Overrides:
computeSpecialProperties in class SystemFunction
Returns:
the special properties, as a bit-significant integer

computeDependencies

public int computeDependencies()
Description copied from class: Expression
Compute the dependencies of an expression, as the union of the dependencies of its subexpressions. (This is overridden for path expressions and filter expressions, where the dependencies of a subexpression are not all propogated). This method should be called only once, to compute the dependencies; after that, getDependencies should be used.

Overrides:
computeDependencies in class Expression
Returns:
the depencies, as a bit-mask

evaluateItem

public Item evaluateItem(XPathContext c)
                  throws XPathException
Evaluate the function in a string context

Specified by:
evaluateItem in interface EvaluableItem
Overrides:
evaluateItem in class Expression
Parameters:
c - The context in which the expression is to be evaluated
Returns:
the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
Throws:
XPathException - if any dynamic error occurs evaluating the expression

getDocumentURI

public static AnyURIValue getDocumentURI(NodeInfo node,
                                         XPathContext c)

isGenerateIdFunction

public static boolean isGenerateIdFunction(Expression exp)
Test whether an expression is a call on the generate-id() function

Parameters:
exp - the expression to be tested
Returns:
true if exp is a call on generate-id(), else false


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