public void iterateTopNodesForFile(String _filePath, IndexEntriesWalkerInterruptable iproc) { String filePath = _filePath.replace(' ', '?').replace('\\', '|').replace('/', '|'); FileEntitiesHolder fileHolder = files.get(filePath); if (fileHolder != null) { for (TreeNodeTop d : fileHolder.nodes) { if (!iproc.process(d.getPath(), d.getValue())) { return; } } } }
protected TreeNodeTop findChildByEncodedName(String encodedName, String filePath) { String name = encodedName.substring(7, encodedName.length()); List<TreeNodeImpl> lst = childs.get(name); if (lst != null) { for (TreeNodeImpl node : lst) { TreeNodeTop top = (TreeNodeTop) node; if (top.getName().equals(encodedName) && top.getParentPath().equals(filePath)) { return top; } } } return null; }
private TreeNode addTopNode(TreeNodeImpl _root, int type, String encodedName, String filePath) { String name = encodedName.substring(7, encodedName.length()); List<TreeNodeImpl> lst = _root.childs.get(name); if (lst == null) { lst = new ArrayList<TreeNodeImpl>(); _root.childs.put(name, lst); } FileEntitiesHolder fh = files.get(filePath); if (fh == null) { fh = new FileEntitiesHolder(filePath); files.put(filePath, fh); } TreeNodeTop node = new TreeNodeTop(_root, encodedName, fh); node.type = type; lst.add(node); return node; }
public void removeNodeByEncodedName(TreeNodeTop[] toDelete) { for (TreeNodeTop top : toDelete) { String name = top.getName().substring(7); List<TreeNodeImpl> lst = root.childs.get(name); if (lst != null) { Iterator<TreeNodeImpl> iterator = lst.iterator(); while (iterator.hasNext()) { TreeNodeTop n = (TreeNodeTop) iterator.next(); if (n.getName().equals(top.getName()) && n.owner.filePath.equals(top.owner.filePath)) { n.dispose(); iterator.remove(); } } // todo -- do we need "remove" above and "put" below if lst.size()> 0 if (lst.size() == 0) { root.childs.remove(name); } } } }