public void process() { int numChildren = mRootNode.getNumChildren(); for (int i = 0; i < numChildren; i++) { processRecurse(mRootNode.getChild(i)); } }
private void getAssetListRecurse(DependencyNode node, List <string> assetList) { if (!node.mFileInfo.bExists) { return; } // disregard DEP files if (String.Compare(Path.GetExtension(node.filename), ".dep", true) != 0) { // Add file to list if (!assetList.Contains(node.filename)) { assetList.Add(node.filename); } } // Now recurse into the child nodes int numChildren = node.getNumChildren(); for (int i = 0; i < numChildren; i++) { getAssetListRecurse(node.getChild(i), assetList); } }
private void processRecurse(DependencyNode node) { if (!node.mFileInfo.bExists) { return; } // Create list of files that this node depends on List <FileInfo> dependencies = new List <FileInfo>(); DependencyManager.getDependencyList(node.filename, dependencies, node.mUnitList); // Add a child node to given node for each dependency file in the list foreach (FileInfo dependentFileInfo in dependencies) { DependencyNode childNode = new DependencyNode(dependentFileInfo); node.addChild(childNode); } // Now recurse into the child nodes int numChildren = node.getNumChildren(); for (int i = 0; i < numChildren; i++) { processRecurse(node.getChild(i)); } }
private void getUnitListRecurse(DependencyNode node, List <string> unitList) { foreach (string unitName in node.mUnitList) { if (!unitList.Contains(unitName)) { unitList.Add(unitName); } } // Now recurse into the child nodes int numChildren = node.getNumChildren(); for (int i = 0; i < numChildren; i++) { getUnitListRecurse(node.getChild(i), unitList); } }
private void createXMLDocRecurse(DependencyNode node, XmlDocument doc, XmlElement element, bool includeFileSizes) { XmlAttribute attrib = doc.CreateAttribute("file"); // Make filename lowercase and add correct extension string name = node.filename.ToLower(); string extension = Path.GetExtension(name); switch (extension) { case ".vis": case ".pfx": case ".scn": case ".sc2": case ".sc3": case ".gls": case ".dmg": case ".cin": name = name + ".xmb"; break; } attrib.Value = name; element.Attributes.Append(attrib); if (includeFileSizes) { XmlAttribute sizeAttr = doc.CreateAttribute("size"); sizeAttr.Value = node.mFileInfo.lFilesize.ToString(); element.Attributes.Append(sizeAttr); } // Now recurse into the child nodes int numChildren = node.getNumChildren(); for (int i = 0; i < numChildren; i++) { XmlElement childElement = doc.CreateElement("node"); createXMLDocRecurse(node.getChild(i), doc, childElement, includeFileSizes); element.AppendChild(childElement); } }
private void createDOTRecurse(DependencyNode node, GraphNode grNodeParent, ref Dictionary <string, GraphNode> graphNodeTable, ref List <GraphEdge> graphEdgeList) { GraphNode grNode; bool nodeFound = graphNodeTable.TryGetValue(node.filename, out grNode); if (nodeFound) { // Since the node is found just add an edge // // Create edge GraphEdge grEdge = new GraphEdge(); grEdge.parentNode = grNodeParent; grEdge.childNode = grNode; grEdge.bFileExists = grNode.bFileExists; graphEdgeList.Add(grEdge); } else { // The node is not found, so we must create a new node, // add the edge and recurse into the node. // // Skip dep nodes since they add confusion. if (String.Compare(Path.GetExtension(node.mFileInfo.mFilename), ".dep", true) == 0) { // Recurse with children int numChildren = node.getNumChildren(); for (int i = 0; i < numChildren; i++) { DependencyNode childNode = node.getChild(i); createDOTRecurse(childNode, grNodeParent, ref graphNodeTable, ref graphEdgeList); } } else { // Create new GraphNode grNode = new GraphNode(); grNode.label = node.filename; grNode.name = "node" + graphNodeTable.Count; grNode.bFileExists = node.mFileInfo.bExists; graphNodeTable.Add(node.filename, grNode); // Create edge GraphEdge grEdge = new GraphEdge(); grEdge.parentNode = grNodeParent; grEdge.childNode = grNode; grEdge.bFileExists = node.mFileInfo.bExists; graphEdgeList.Add(grEdge); // Recurse with children int numChildren = node.getNumChildren(); for (int i = 0; i < numChildren; i++) { DependencyNode childNode = node.getChild(i); createDOTRecurse(childNode, grNode, ref graphNodeTable, ref graphEdgeList); } } } }