/** * mark the node to be removed (and all children) as invalid so anyone holding a direct reference to it will * be aware that it is no longer valid. */ protected void invalidateNode(NodeSPI node) { node.setValid(false, true); // root nodes can never be invalid if (fqn.isRoot()) node.setValid(true, false); // non-recursive. }
@Override public void setValid(boolean valid, boolean recursive) { setFlag(VALID, valid); if (trace) log.trace("Marking node " + getFqn() + " as " + (valid ? "" : "in") + "valid"); if (recursive) { for (Node<K, V> child : children().values()) { ((NodeSPI<K, V>) child).setValid(valid, recursive); } } }
private void validateNodeAndParents(NodeSPI node) { node.setValid(true, false); if (!node.getFqn().isRoot()) validateNodeAndParents(node.getParentDirect()); }
n.setValid(true, false);
private void removeNodeLegacy(Fqn fqn) { NodeSPI targetNode = peek(fqn, false, true); if (targetNode == null) return; NodeSPI parentNode = targetNode.getParentDirect(); targetNode.setValid(false, false); if (parentNode != null) { parentNode.removeChildDirect(fqn.getLastElement()); parentNode.setChildrenLoaded(false); } }
public void rollback() { if (targetNode != null) { Object childName = targetNode.getFqn().getLastElement(); if (trace) { log.trace("rollback(parent: " + parentFqn + ", child: " + childName + ", node=" + targetNode + ")"); } if (parentFqn == null || childName == null) { log.error("parent fqn or childName or childNode was null"); return; } NodeSPI parentNode = dataContainer.peek(parentFqn); if (parentNode == null) { log.warn("node " + parentFqn + " not found"); return; } parentNode.addChild(childName, targetNode); targetNode.markAsDeleted(false, true); targetNode.clearDataDirect(); if (originalData != null) targetNode.putAllDirect(originalData); targetNode.setValid(true, true); } } }
if (usingVersionedInvalidation) n.setValid(true, false);
if (!currentNode.isValid() && createIfNotExists) currentNode.setValid(true, false);
parentNode.setChildrenLoaded(false); node.setValid(false, false); node.markAsDeleted(true); return true;
parentNode.setChildrenLoaded(false); node.setValid(false, false); node.markAsDeleted(true); node.setDataLoaded(false);