com.saxonica.update
Class RenameAction

java.lang.Object
  extended by com.saxonica.update.PendingUpdateAction
      extended by com.saxonica.update.RenameAction

public class RenameAction
extends PendingUpdateAction

A pending update action representing the effect of a rename expression


Field Summary
static int PHASE
           
 
Constructor Summary
RenameAction(NodeInfo node, NodeName nameCode)
          Create a RenameAction
 
Method Summary
 void apply(XPathContext context, Set affectedRootSet)
          Apply the pending update action to the affected nodes
 int getApplyPhase()
          Get the phase of operation in which this pending update action is applied.
 NodeName getNewName()
          Get the new name as an integer namecode
 NodeInfo getTargetNode()
          Get the target node of the update action
 
Methods inherited from class com.saxonica.update.PendingUpdateAction
getOriginator, setOriginator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PHASE

public static final int PHASE
See Also:
Constant Field Values
Constructor Detail

RenameAction

public RenameAction(NodeInfo node,
                    NodeName nameCode)
Create a RenameAction

Parameters:
node - the node to be renamed
nameCode - the namecode of the new name
Method Detail

apply

public void apply(XPathContext context,
                  Set affectedRootSet)
Apply the pending update action to the affected nodes

Specified by:
apply in class PendingUpdateAction
Parameters:
context - the XPath evaluation context
affectedRootSet - the set of roots of trees that have been modified, which this action should add to as necessary

getTargetNode

public NodeInfo getTargetNode()
Get the target node of the update action

Specified by:
getTargetNode in class PendingUpdateAction
Returns:
the target node, the node to which this update action applies. Returns null in the case of a delete action, which affects multiple nodes.

getNewName

public NodeName getNewName()
Get the new name as an integer namecode

Returns:
the new name as an integer namecode

getApplyPhase

public int getApplyPhase()
Get the phase of operation in which this pending update action is applied. See 3.2.2 upd:applyUpdates, Semantics, rule 2. However, the spec does rename, and insert as a single phase; we split it so that rename is phase 0, while insert is phase 1. This ensures that old attributes are renamed before new attributes are inserted, avoiding spurious conflicts.

Specified by:
getApplyPhase in class PendingUpdateAction
Returns:
the phase of operation, an integer in the range 1 to 5 representing the stages labelled a-e in the specification


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