/** * returns an iterator of read-only nodes */ public ClosableIterator<DataTreeNode> getNodeIterator() { return !hasNodes() ? new Iter(null) : new Iter(tree.fetchNodeRange(nodedb)); }
protected void requireNodeDB() { if (!hasNodes()) { nodedb = tree.getNextNodeDB(); } }
@Override public ClosableIterator<DataTreeNode> getIterator() { NonConcurrentTreeNode rootNode = getRootNode(); if (rootNode != null) { return getRootNode().getIterator(); } return null; }
@Override public String getName() { return getRootNode().getName(); }
@Override public int getNodeCount() { return getRootNode().getNodeCount(); }
@Override public void release() { getRootNode().release(); }
@Override public DataTreeNode getOrCreateNode(String name, DataTreeNodeInitializer init) { return getRootNode().getOrCreateNode(name, init); }
@Override public void updateChildData(DataTreeNodeUpdater state, TreeDataParent path) { getRootNode().updateChildData(state, path); }
@Override public long getCounter() { return getRootNode().getCounter(); }
@Override public void setCounter(long val) { getRootNode().setCounter(val); }
@Override public void updateParentData(DataTreeNodeUpdater state, DataTreeNode child, boolean isnew) { getRootNode().updateParentData(state, child, isnew); }
@Override public DataTreeNode getLeasedNode(String name) { return getRootNode().getLeasedNode(name); }
@Override public boolean deleteNode(String node) { return getRootNode().deleteNode(node); }
@Override public long incrementCounter(long val) { return getRootNode().incrementCounter(val); }
@Override public DataTreeNodeActor getData(String key) { return getRootNode().getData(key); }
@Override public void writeLock() { getRootNode().writeLock(); }
@Override public Map<String, TreeNodeData> getDataMap() { return getRootNode().getDataMap(); }
@Override public ClosableIterator<DataTreeNode> getIterator(String begin) { return getRootNode().getIterator(begin); }
/** * returns an iterator of read-only nodes */ public ClosableIterator<DataTreeNode> getNodeIterator(String from, String to) { if (!hasNodes()) { return new Iter(null); } return new Iter(tree.fetchNodeRange(nodedb, from, to)); }
@Override public ClosableIterator<DataTreeNode> getIterator(String from, String to) { return getRootNode().getIterator(from, to); }