net.sf.saxon.functions
Class StringJoin

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

public class StringJoin
extends SystemFunction

xf:string-join(string* $sequence, string $separator)

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
StringJoin()
           
 
Method Summary
 Expression copy()
          Copy an expression.
 boolean equals(Object o)
          Determine whether two expressions are equivalent
 Item evaluateItem(XPathContext c)
          Evaluate an expression as a single item.
 int getImplementationMethod()
          An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().
 boolean isReturnEmptyIfEmpty()
           
 Expression optimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType)
          Perform optimisation of an expression and its subexpressions.
 void process(XPathContext context)
          Process the instruction in push mode.
 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
 
Methods inherited from class net.sf.saxon.functions.SystemFunction
addContextDocumentArgument, addDocToPathMap, checkArguments, computeCardinality, computeSpecialProperties, getDetails, getErrorCodeForTypeErrors, getItemType, getOperation, getRequiredType, makeSystemFunction, 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, 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StringJoin

public StringJoin()
Method Detail

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

public Expression copy()
Description copied from class: SystemFunction
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

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

optimize

public Expression optimize(ExpressionVisitor visitor,
                           ExpressionVisitor.ContextItemType contextItemType)
                    throws XPathException
Description copied from class: SystemFunction
Perform 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:
optimize in class SystemFunction
Parameters:
visitor - an expression visitor
contextItemType - 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 to Type.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

public Item evaluateItem(XPathContext c)
                  throws XPathException
Description copied from class: Expression
Evaluate 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:
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

process

public void process(XPathContext context)
             throws XPathException
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:
process in class Expression
Parameters:
context - The dynamic context, giving access to the current node, the current variables, etc.
Throws:
XPathException - if a dynamic error occurs


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