## org.exist.xquery.update
Class Modification

    java.lang.Object
      org.exist.xquery.AbstractExpression
          org.exist.xquery.update.Modification

All Implemented Interfaces:
  Expression

Direct Known Subclasses:
  Delete, Insert, Rename, Replace, Update

public abstract class Modification
extends AbstractExpression

Author:
  wolf

Field Summary

Fields inherited from interface org.exist.xquery.Expression
`DOT_TEST, EXPRESSION_ID_INVALID, IGNORE_CONTEXT, IN_PREDICATE, IN_UPDATE, IN_WHERE_CLAUSE, NO_CONTEXT_ID, SINGLE_STEP_EXECUTION`

Constructor Summary
`Modification(XQueryContext context, Expression select, Expression value)`

Method Summary
`void` `analyze(AnalyzeContextInfo contextInfo)` Statically analyze the expression and its subexpressions.
`void` `commitTransaction(Txn transaction)` Commit's the transaction for the update unless it is a batch update and then the commit is defered
`int` `getCardinality()` The default cardinality is `Cardinality.EXACTLY_ONE`.
`Txn` `getTransaction()` Gets the Transaction to use for the update (can be batch or individual)
`void` `resetState()` Called to inform an expression that it should reset to its initial state.
`int` `returnsType()` The static return type of the expression.

Methods inherited from class org.exist.xquery.AbstractExpression
`accept, eval, eval, getASTNode, getContextDocSet, getContextId, getDependencies, getExpressionId, setASTNode, setContextDocSet, setPrimaryAxis`

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

Methods inherited from interface org.exist.xquery.Expression
`dump`

Constructor Detail

### Modification

    public Modification(XQueryContext context,
                        Expression select,
                        Expression value)

Parameters:
  `context` -

Method Detail

### getCardinality

    public int getCardinality()

  Description copied from class: `AbstractExpression`
  The default cardinality is `Cardinality.EXACTLY_ONE`.

  Specified by:
    `getCardinality` in interface `Expression`
  Overrides:
    `getCardinality` in class `AbstractExpression`

### returnsType

    public int returnsType()

  Description copied from interface: `Expression`
  The static return type of the expression. This method should return one of the type constants defined in class `Type`. If the return type cannot be determined statically, return Type.ITEM.

  Specified by:
    `returnsType` in interface `Expression`
  Specified by:
    `returnsType` in class `AbstractExpression`

### resetState

    public void resetState()

  Description copied from interface: `Expression`
  Called to inform an expression that it should reset to its initial state. All cached data in the expression object should be dropped. For example, the document() function calls this method whenever the input document set has changed.

  Specified by:
    `resetState` in interface `Expression`
  Overrides:
    `resetState` in class `AbstractExpression`

### analyze

    public void analyze(AnalyzeContextInfo contextInfo)
                 throws XPathException

  Description copied from interface: `Expression`
  Statically analyze the expression and its subexpressions. During the static analysis phase, the query engine can detect unknown variables and some type errors.

  Throws:
    `XPathException`

### getTransaction

    public Txn getTransaction()

  Gets the Transaction to use for the update (can be batch or individual)

  Returns:
    The transaction

### commitTransaction

    public void commitTransaction(Txn transaction)
                           throws TransactionException

  Commit's the transaction for the update unless it is a batch update and then the commit is defered

  Parameters:
    `transaction` - The Transaction to commit
  Throws:
    `TransactionException`

Copyright (C) Wolfgang Meier. All rights reserved.