MCPcopy Create free account
hub / github.com/BaseXdb/basex / delete

Method delete

basex-core/src/main/java/org/basex/data/Data.java:672–712  ·  view source on GitHub ↗

Deletes a node and its descendants. @param pre PRE value of the node to be deleted

(final int pre)

Source from the content-addressed store, hash-verified

670 * @param pre PRE value of the node to be deleted
671 */
672 public final void delete(final int pre) {
673 meta.update();
674
675 // delete references in document index
676 int kind = kind(pre);
677 final int size = size(pre, kind);
678
679 // delete entries in value indexes
680 indexDelete(pre, id(pre), size);
681
682 /// delete textual values
683 if(kind != DOC && kind != ELEM) delete(pre, kind != ATTR);
684
685 // reduce size of ancestors
686 int par = pre;
687 // check if we are an attribute (different size counters)
688 if(kind == ATTR) {
689 par = parent(par, ATTR);
690 attSize(par, ELEM, attSize(par, ELEM) - 1);
691 size(par, ELEM, size(par, ELEM) - 1);
692 kind = kind(par);
693 }
694
695 // delete namespace nodes and propagate PRE value shifts (before node sizes are touched!)
696 nspaces.delete(pre, size, this);
697
698 // reduce size of ancestors
699 while(par > 0 && kind != DOC) {
700 par = parent(par, kind);
701 kind = kind(par);
702 size(par, kind, size(par, kind) - size);
703 }
704
705 // preserve empty root node
706 if(kind(pre) == DOC) --meta.ndocs;
707
708 // delete node from table structure and reduce document size
709 table.delete(pre, size);
710
711 updateDist(pre, -size);
712 }
713
714 /**
715 * Inserts standalone attributes (without root element).

Callers 9

simpleNodeDeleteMethod · 0.95
cascadingDeleteMethod · 0.95
cascadingDelete2Method · 0.95
deleteAttributeMethod · 0.95
deleteTextMethod · 0.95
mainMethod · 0.45
closeMethod · 0.45
updateMethod · 0.45
indexDeleteMethod · 0.45

Calls 8

kindMethod · 0.95
sizeMethod · 0.95
indexDeleteMethod · 0.95
idMethod · 0.95
parentMethod · 0.95
attSizeMethod · 0.95
updateDistMethod · 0.95
updateMethod · 0.45

Tested by 5

simpleNodeDeleteMethod · 0.76
cascadingDeleteMethod · 0.76
cascadingDelete2Method · 0.76
deleteAttributeMethod · 0.76
deleteTextMethod · 0.76