Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.saxon.expr.flwor
Class TupleExpression

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.flwor.TupleExpression

All Implemented Interfaces:
  Serializable, SourceLocator, LocationProvider, SaxonLocator, InstructionInfo, Locator

    public class TupleExpression

extends Expression

A tuple expression is an expression that returns a tuple. Specifically, it is a list of slot numbers of local variables; it returns a Tuple item containg the current value of these variables.

See Also:
  Serialized Form

Field Summary

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
`TupleExpression()`

Method Summary
`int` | `computeCardinality()` Get the cardinality of the expression.
`Expression` | `copy()` Copy an expression.
`Tuple` | `evaluateItem(XPathContext context)` Evaluate an expression as a single item.
`void` | `explain(ExpressionPresenter out)` Diagnostic print of expression structure.
`int` | `getIntrinsicDependencies()` Determine the intrinsic dependencies of an expression, that is, those which are not derived from the dependencies of its subexpressions.
`ItemType` | `getItemType(TypeHierarchy th)` Determine the data type of the expression, if possible.
`LocalVariableReference[]` | `getSlots()`
`Iterator<Expression>` | `iterateSubExpressions()` Get the immediate sub-expressions of this expression.
`boolean` | `replaceSubExpression(Expression original, Expression replacement)` Replace one subexpression by a replacement subexpression
`void` | `setCurrentTuple(XPathContext context, Tuple tuple)` Set the local variables in the current stack frame to values corresponding to a supplied tuple
`void` | `setVariables(List<LocalVariableReference> refs)`

Methods inherited from class net.sf.saxon.expr.Expression
`addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeSpecialProperties, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getExpressionName, getHostLanguage, getImplementationMethod, getIntegerBounds, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, iterateSameFocusSubExpressions, markTailFunctionCalls, optimize, process, promote, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation, toString, typeCheck, typeError`

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

Constructor Detail

### TupleExpression

    public TupleExpression()

Method Detail

### setVariables

    public void setVariables(List<LocalVariableReference> refs)

### getSlots

    public LocalVariableReference[] getSlots()

### getItemType

    public ItemType getItemType(TypeHierarchy th)

  Description copied from class: `Expression`
  Determine the data type of the expression, if possible. All expression return sequences, in general; this method determines the type of the items within the sequence, assuming that (a) this is known in advance, and (b) it is the same for all items in the sequence.

  This method should always return a result, though it may be the best approximation that is available at the time.

  Specified by:
    `getItemType` in class `Expression`
  Parameters:
    `th` - the type hierarchy cache
  Returns:
    a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER, Type.NODE, or Type.ITEM (meaning not known at compile time)

### iterateSubExpressions

    public Iterator<Expression> iterateSubExpressions()

  Get the immediate sub-expressions of this expression. Default implementation returns a zero-length array, appropriate for an expression that has no sub-expressions.

  Overrides:
    `iterateSubExpressions` in class `Expression`
  Returns:
    an iterator containing the sub-expressions of this expression

### replaceSubExpression

    public boolean replaceSubExpression(Expression original,
                                        Expression replacement)

  Replace one subexpression by a replacement subexpression

  Overrides:
    `replaceSubExpression` in class `Expression`
  Parameters:
    `original` - the original subexpression
    `replacement` - the replacement subexpression
  Returns:
    true if the original subexpression is found

### copy

    public Expression copy()

  Copy an expression. This makes a deep copy.

  Specified by:
    `copy` in class `Expression`
  Returns:
    the copy of the original expression

### explain

    public void explain(ExpressionPresenter out)

  Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.

  Specified by:
    `explain` in class `Expression`
  Parameters:
    `out` - the expression presenter used to display the structure

### evaluateItem

    public Tuple evaluateItem(XPathContext context)
                       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:
    `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

### setCurrentTuple

    public void setCurrentTuple(XPathContext context,
                                Tuple tuple)

  Set the local variables in the current stack frame to values corresponding to a supplied tuple

  Parameters:
    `context` - identifies the stack frame to be modified
    `tuple` - the tuple containing the current values

### computeCardinality

    public int computeCardinality()

  Get the cardinality of the expression. This is exactly one, in the sense that evaluating the TupleExpression returns a single tuple.

  Specified by:
    `computeCardinality` in class `Expression`
  Returns:
    the static cardinality - EXACTLY_ONE

### getIntrinsicDependencies

    public int getIntrinsicDependencies()

  Description copied from class: `Expression`
  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 `Expression`
  Returns:
    a set of bit-significant flags identifying the "intrinsic" dependencies. The flags are documented in class net.sf.saxon.value.StaticProperty

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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