org.basex.query.up.primitives
Class RenameNode

java.lang.Object
  extended by org.basex.query.up.primitives.Operation
      extended by org.basex.query.up.primitives.UpdatePrimitive
          extended by org.basex.query.up.primitives.RenameNode

public final class RenameNode
extends UpdatePrimitive

Rename node primitive.

Author:
BaseX Team 2005-12, BSD License, Lukas Kircher

Field Summary
 
Fields inherited from class org.basex.query.up.primitives.UpdatePrimitive
targetPre, type
 
Fields inherited from class org.basex.query.up.primitives.Operation
data, info
 
Constructor Summary
RenameNode(int p, Data d, InputInfo i, QNm nm)
          Constructor.
 
Method Summary
 void addAtomics(AtomicUpdateList l)
          Adds the atomic update operations for this update primitive to the given list.
 void merge(UpdatePrimitive p)
          Merges two update primitives, as they have the same target node.
 int size()
          Returns the total number of node operations.
 UpdatePrimitive[] substitute(MemData tmp)
          Substitutes the update primitive if necessary.
 java.lang.String toString()
           
 void update(NamePool pool)
          Updates the name pool, which is used to find duplicate attributes and namespace conflicts.
 
Methods inherited from class org.basex.query.up.primitives.UpdatePrimitive
getData, getInfo, getTargetNode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RenameNode

public RenameNode(int p,
                  Data d,
                  InputInfo i,
                  QNm nm)
Constructor.

Parameters:
p - target node pre value
d - target data reference
i - input info
nm - new QName / new name value
Method Detail

merge

public void merge(UpdatePrimitive p)
           throws QueryException
Description copied from class: UpdatePrimitive
Merges two update primitives, as they have the same target node.

Specified by:
merge in class UpdatePrimitive
Parameters:
p - primitive to merge with
Throws:
QueryException - exception

update

public void update(NamePool pool)
Description copied from class: UpdatePrimitive
Updates the name pool, which is used to find duplicate attributes and namespace conflicts.

Specified by:
update in class UpdatePrimitive
Parameters:
pool - name pool

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

size

public int size()
Description copied from class: Operation
Returns the total number of node operations.

Specified by:
size in class Operation
Returns:
number of updates

addAtomics

public void addAtomics(AtomicUpdateList l)
Description copied from class: UpdatePrimitive
Adds the atomic update operations for this update primitive to the given list.

Specified by:
addAtomics in class UpdatePrimitive
Parameters:
l - list of atomic updates

substitute

public UpdatePrimitive[] substitute(MemData tmp)
Description copied from class: UpdatePrimitive
Substitutes the update primitive if necessary. For instance a 'Replace Value of' primitive called on a target T with T being an element results in a 'Replace Element Content' primitive with target T. As this is ugly to process it is substituted by delete primitives for every child of T and an 'Insert into' primitive if the length of the (optional!) text node is greater zero. When a primitive is substituted it is still added to the list itself to be able to throw exceptions when necessary. I.e. for multiple replaces on the same target node. These update primitives don't produce atomic updates, hence this won't affect the database.

Specified by:
substitute in class UpdatePrimitive
Parameters:
tmp - temporary mem data
Returns:
An array that contains the substituting primitives or this update primitive if no substitution is necessary.