net.sf.saxon.functions
Class Doc

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.Doc
All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, CallableExpression, InstructionInfo, Locator

public class Doc
extends SystemFunction
implements CallableExpression

Implement the fn:doc() function - a simplified form of the Document function

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.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, WATCH_METHOD
 
Constructor Summary
Doc()
           
 
Method Summary
 PathMap.PathMapNodeSet addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
          Add a representation of this expression to a PathMap.
 SequenceIterator call(SequenceIterator[] arguments, XPathContext context)
          Evaluate the expression
 void checkArguments(ExpressionVisitor visitor)
          Method called during static type checking
 int computeCardinality()
          Determine the cardinality of the function.
 int computeSpecialProperties()
          Get the static properties of this expression (other than its type).
 Expression copy()
          Copy an expression.
 boolean equals(Object o)
          Determine whether two expressions are equivalent
 Item evaluateItem(XPathContext context)
          Evaluate the expression
 String getStaticBaseURI()
          Get the static base URI of the expression
 boolean isReadOnce()
          Ask whether this document has been marked as being read once only.
 Expression preEvaluate(ExpressionVisitor visitor)
          preEvaluate: this method suppresses compile-time evaluation unless a configuration option has been set to allow early evaluation.
 void sendDocument(XPathContext context, Receiver out)
          Copy the document identified by this expression to a given Receiver.
 void setReadOnce(boolean once)
          Indicate that the document will be read once only (or that it should be treated as if it is read once only.
 
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, getDetails, getErrorCodeForTypeErrors, getImplementationMethod, getItemType, getOperation, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault
 
Methods inherited from class net.sf.saxon.expr.FunctionCall
addExternalFunctionCallToPathMap, checkArgumentCount, explain, getArguments, getDisplayName, getExpressionName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck
 
Methods inherited from class net.sf.saxon.expr.Expression
adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getHostLanguage, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, hasVariableBinding, 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
 
Methods inherited from interface net.sf.saxon.expr.CallableExpression
getArguments
 

Constructor Detail

Doc

public Doc()
Method Detail

setReadOnce

public void setReadOnce(boolean once)
Indicate that the document will be read once only (or that it should be treated as if it is read once only. This means (a) the document will not be held in memory after all references to it go out of scope, and (b) if the query or transformation tries to read it again, it will get a new copy, with different node identities, and potentially with different content. It also means that the document is eligible for document projection.

Parameters:
once - true if this document is to be treated as being read once only

isReadOnce

public boolean isReadOnce()
Ask whether this document has been marked as being read once only.

Returns:
true if the document has been marked as being read once only

checkArguments

public void checkArguments(ExpressionVisitor visitor)
                    throws XPathException
Description copied from class: SystemFunction
Method called during static type checking

Overrides:
checkArguments in class SystemFunction
Parameters:
visitor - the expression visitor
Throws:
XPathException - if the arguments are incorrect

getStaticBaseURI

public String getStaticBaseURI()
Get the static base URI of the expression

Returns:
the static base URI

preEvaluate

public Expression preEvaluate(ExpressionVisitor visitor)
preEvaluate: this method suppresses compile-time evaluation unless a configuration option has been set to allow early evaluation.

Overrides:
preEvaluate in class FunctionCall
Parameters:
visitor - an expression visitor
Returns:
the result of the early evaluation, or the original expression, or potentially a simplified expression

computeCardinality

public int computeCardinality()
Description copied from class: SystemFunction
Determine the cardinality of the function.

Overrides:
computeCardinality in class SystemFunction
Returns:
the computed cardinality, as one of the values StaticProperty.ALLOWS_ZERO_OR_ONE, StaticProperty.EXACTLY_ONE, StaticProperty.ALLOWS_ONE_OR_MORE, StaticProperty.ALLOWS_ZERO_OR_MORE

addToPathMap

public PathMap.PathMapNodeSet addToPathMap(PathMap pathMap,
                                           PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of this expression to a PathMap. The PathMap captures a map of the nodes visited by an expression in a source tree.

Overrides:
addToPathMap in class Expression
Parameters:
pathMap - the PathMap to which the expression should be added
pathMapNodeSet -
Returns:
the pathMapNode representing the focus established by this expression, in the case where this expression is the first operand of a path expression or filter expression

copy

public Expression copy()
Copy an expression. This makes a deep copy.

Overrides:
copy in class SystemFunction
Returns:
the copy of the original expression

equals

public boolean equals(Object o)
Determine whether two expressions are equivalent

Overrides:
equals in class SystemFunction

evaluateItem

public Item evaluateItem(XPathContext context)
                  throws XPathException
Evaluate the expression

Overrides:
evaluateItem in class Expression
Parameters:
context - the dynamic evaluation context
Returns:
the result of evaluating the expression (a document node)
Throws:
XPathException

call

public SequenceIterator call(SequenceIterator[] arguments,
                             XPathContext context)
                      throws XPathException
Evaluate the expression

Specified by:
call in interface CallableExpression
Parameters:
arguments - the values of the arguments, supplied as SequenceIterators
context - the dynamic evaluation context
Returns:
the result of the evaluation, in the form of a SequenceIterator
Throws:
XPathException - if a dynamic error occurs during the evaluation of the expression

computeSpecialProperties

public int computeSpecialProperties()
Get the static properties of this expression (other than its type). The result is bit-signficant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.

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

sendDocument

public void sendDocument(XPathContext context,
                         Receiver out)
                  throws XPathException
Copy the document identified by this expression to a given Receiver. This method is used only when it is known that the document is being copied, because there is then no problem about node identity.

Parameters:
context - the XPath dynamic context
out - the destination to which the document will be sent
Throws:
XPathException


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