net.sf.saxon.functions
Class Count
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.functions.SystemFunction
net.sf.saxon.functions.Aggregate
net.sf.saxon.functions.Count
- All Implemented Interfaces:
- Serializable, SourceLocator, LocationProvider, SaxonLocator, InstructionInfo, Locator
public class Count
- extends Aggregate
Implementation of the fn:count function
- See Also:
- Serialized Form
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 |
Count()
|
Method Summary |
static int |
count(SequenceIterator iter)
Get the number of items in a sequence identified by a SequenceIterator |
Item |
evaluateItem(XPathContext context)
Evaluate the function |
int |
getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). |
IntegerValue[] |
getIntegerBounds()
For an expression that returns an integer or a sequence of integers, get
a lower and upper bound on the values of the integers that may be returned, from
static analysis. |
Methods inherited from class net.sf.saxon.functions.SystemFunction |
addContextDocumentArgument, addDocToPathMap, computeCardinality, computeSpecialProperties, copy, equals, getDetails, getErrorCodeForTypeErrors, 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, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck |
Methods inherited from class net.sf.saxon.expr.Expression |
addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, 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, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError |
Count
public Count()
getImplementationMethod
public int getImplementationMethod()
- Description copied from class:
SystemFunction
- An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
This method indicates which of these methods is provided directly. The other methods will always be available
indirectly, using an implementation that relies on one of the other methods.
- Overrides:
getImplementationMethod
in class SystemFunction
- Returns:
- the implementation method, for example
Expression.ITERATE_METHOD
or Expression.EVALUATE_METHOD
or
Expression.PROCESS_METHOD
getIntegerBounds
public IntegerValue[] getIntegerBounds()
- For an expression that returns an integer or a sequence of integers, get
a lower and upper bound on the values of the integers that may be returned, from
static analysis. The default implementation returns null, meaning "unknown" or
"not applicable". Other implementations return an array of two IntegerValue objects,
representing the lower and upper bounds respectively. The values
UNBOUNDED_LOWER and UNBOUNDED_UPPER are used by convention to indicate that
the value may be arbitrarily large. The values MAX_STRING_LENGTH and MAX_SEQUENCE_LENGTH
are used to indicate values limited by the size of a string or the size of a sequence.
- Overrides:
getIntegerBounds
in class Expression
- Returns:
- the lower and upper bounds of integer values in the result, or null to indicate
unknown or not applicable.
evaluateItem
public Item evaluateItem(XPathContext context)
throws XPathException
- Evaluate the function
- Overrides:
evaluateItem
in class Expression
- Parameters:
context
- 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
count
public static int count(SequenceIterator iter)
throws XPathException
- Get the number of items in a sequence identified by a SequenceIterator
- Parameters:
iter
- The SequenceIterator. This method moves the current position
of the supplied iterator; if this isn't safe, make a copy of the iterator
first by calling getAnother(). The supplied iterator must be positioned
before the first item (there must have been no call on next()).
- Returns:
- the number of items in the underlying sequence
- Throws:
XPathException
- if a failure occurs reading the input sequence
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.