public DTWorkspace build() { T_node root = this.mTemp.getRootNode(); List<NodeShell> list = new ArrayList<NodeShell>(); this._scanTree(list, root, 32); this._setVFile(list); DTWorkspaceImpl works = new DTWorkspaceImpl(this.mTemp); DTWorkspace worksFacade = new DTWorkspaceFacade(works); for (NodeShell ns : list) { DTNode dtNode = ns.createNode(worksFacade); works.addNode(dtNode); } return worksFacade; }
private void _setVFile(List<NodeShell> list) { // make map Map<T_node, NodeShell> map = new HashMap<T_node, NodeShell>(); for (NodeShell ns : list) { map.put(ns.mNode, ns); } // find main node T_node mainNode = this.mTemp.getMainNode(); NodeShell mainNS = map.get(mainNode); // set parent for NS(s) for (NodeShell ns : list) { T_node node_p, node_c; node_c = ns.mNode; if (node_c == null) { node_p = null; } else { node_p = node_c.getParent(); } NodeShell ns_p = map.get(node_p); ns.setParent(ns_p); } // set path for mainNS mainNS.setPath(this.mFile); for (NodeShell ns : list) { ns.getVFile(); } }
public void setPath(VFile file) { this.mVFile = file; String name_f = file.getName(); String name_n = this.getName(); if (name_n == null) { // skip } else if (name_n.equals("")) { // skip } else if (name_n.equals("*")) { // skip } else { if (!name_n.equals(name_f)) { throw new RuntimeException("required a '" + name_n + "' but get a '" + name_f + "'"); } } NodeShell parent = this.mParent; if (parent != null) { parent.setPath(file.getParentFile()); } }