## net.sf.saxon.functions
Class StringLength

    java.lang.Object
      net.sf.saxon.expr.ComputedExpression
          net.sf.saxon.expr.FunctionCall
              net.sf.saxon.functions.SystemFunction
                  net.sf.saxon.functions.StringLength

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class StringLength
extends SystemFunction

Implement the XPath string-length() 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.ComputedExpression
`locationId, staticProperties`

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`StringLength()`

Method Summary
`Item` `evaluateItem(XPathContext c)` Evaluate in a general context
`int` `getIntrinsicDependencies()` Determine the intrinsic dependencies of an expression, that is, those which are not derived from the dependencies of its subexpressions.
`Expression` `preEvaluate(StaticContext env)` Pre-evaluate a function at compile time.
`void` `setShortcut()` setShortCut() - used by optimizer when we only need to know if the length is non-zero
`Expression` `simplify(StaticContext env)` Simplify and validate.

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, checkArguments, computeCardinality, computeSpecialProperties, display, getDetails, getItemType, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`analyze, checkArgumentCount, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, promote, setArguments, setFunctionNameCode, simplifyArguments`

Methods inherited from class net.sf.saxon.expr.ComputedExpression

`adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getImplementationMethod, getInstructionInfo, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, typeError, typeError`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### StringLength

    public StringLength()

Method Detail

### simplify

    public Expression simplify(StaticContext env)
                        throws XPathException

  Simplify and validate. This is a pure function so it can be simplified in advance if the arguments are known

  Specified by:
    `simplify` in interface `Expression`
  Overrides:
    `simplify` in class `FunctionCall`
  Throws:
    `XPathException`

### getIntrinsicDependencies

    public int getIntrinsicDependencies()

  Determine the intrinsic dependencies of an expression, that is, those which are not derived from the dependencies of its subexpressions. For example, position() has an intrinsic dependency on the context position, while (position()+1) does not. The default implementation of the method returns 0, indicating "no dependencies".

  Overrides:
    `getIntrinsicDependencies` in class `ComputedExpression`
  Returns:
    a set of bit-significant flags identifying the "intrinsic" dependencies. The flags are documented in class net.sf.saxon.value.StaticProperty

### preEvaluate

    public Expression preEvaluate(StaticContext env)
                           throws XPathException

  Pre-evaluate a function at compile time. Functions that do not allow pre-evaluation, or that need access to context information, can override this method.

  Overrides:
    `preEvaluate` in class `FunctionCall`
  Throws:
    `XPathException`

### setShortcut

    public void setShortcut()

  setShortCut() - used by optimizer when we only need to know if the length is non-zero

### evaluateItem

    public Item evaluateItem(XPathContext c)
                      throws XPathException

  Evaluate in a general context

  Specified by:
    `evaluateItem` in interface `Expression`
  Overrides:
    `evaluateItem` in class `ComputedExpression`
  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