Package net.sf.saxon.functions
Class StringJoin
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.functions.SystemFunction
net.sf.saxon.functions.StringJoin
- All Implemented Interfaces:
Serializable,SourceLocator,LocationProvider,SaxonLocator,InstructionInfo,Locator
xf:string-join(string* $sequence, string $separator)
- See Also:
-
Field Summary
Fields inherited from class net.sf.saxon.functions.SystemFunction
operationFields inherited from class net.sf.saxon.expr.FunctionCall
argumentFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncopy()Copy an expression.booleanDetermine whether two expressions are equivalentEvaluate an expression as a single item.intAn implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().booleanoptimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) Perform optimisation of an expression and its subexpressions.voidprocess(XPathContext context) Process the instruction in push mode.voidsetReturnEmptyIfEmpty(boolean option) Indicate that when the input sequence (first argument) is empty, the function should return an empty sequence rather than an empty stringMethods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, checkArguments, computeCardinality, computeSpecialProperties, getDetails, getErrorCodeForTypeErrors, getItemType, getOperation, getRequiredType, makeSystemFunction, setDetails, useContextItemAsDefaultMethods 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, typeCheckMethods 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, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError
-
Constructor Details
-
StringJoin
public StringJoin()
-
-
Method Details
-
setReturnEmptyIfEmpty
public void setReturnEmptyIfEmpty(boolean option) Indicate that when the input sequence (first argument) is empty, the function should return an empty sequence rather than an empty string- Parameters:
option- true if an empty sequence should be returned when the input is an empty sequence.
-
isReturnEmptyIfEmpty
public boolean isReturnEmptyIfEmpty() -
copy
Description copied from class:SystemFunctionCopy an expression. This makes a deep copy.- Overrides:
copyin classSystemFunction- Returns:
- the copy of the original expression
-
equals
Determine whether two expressions are equivalent- Overrides:
equalsin classSystemFunction
-
getImplementationMethod
public int getImplementationMethod()Description copied from class:SystemFunctionAn 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:
getImplementationMethodin classSystemFunction- Returns:
- the implementation method, for example
Expression.ITERATE_METHODorExpression.EVALUATE_METHODorExpression.PROCESS_METHOD
-
optimize
public Expression optimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) throws XPathException Description copied from class:SystemFunctionPerform optimisation of an expression and its subexpressions.This method is called after all references to functions and variables have been resolved to the declaration of the function or variable, and after all type checking has been done.
- Overrides:
optimizein classSystemFunction- Parameters:
visitor- an expression visitorcontextItemType- the static type of "." at the point where this expression is invoked. The parameter is set to null if it is known statically that the context item will be undefined. If the type of the context item is not known statically, the argument is set toType.ITEM_TYPE- Returns:
- the original expression, rewritten if appropriate to optimize execution
- Throws:
XPathException- if an error is discovered during this phase (typically a type error)
-
evaluateItem
Description copied from class:ExpressionEvaluate an expression as a single item. This always returns either a single Item or null (denoting the empty sequence). No conversion is done. This method should not be used unless the static type of the expression is a subtype of "item" or "item?": that is, it should not be called if the expression may return a sequence. There is no guarantee that this condition will be detected.- Overrides:
evaluateItemin classExpression- 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
-
process
Process the instruction in push mode. This avoids constructing the concatenated string in memory, instead its parts can be sent straight to the serializer.- Overrides:
processin classExpression- Parameters:
context- The dynamic context, giving access to the current node, the current variables, etc.- Throws:
XPathException- if a dynamic error occurs
-