/// <summary> /// method to query nodes into this table /// </summary> /// <param name="flat"> /// if elements should be depth one, then /// flat should be true /// </param> public void queryNodes(bool flat = false) { foreach (Node node in Db.ParentQuery(QueryTag)) { if (node is Table) { if (flat) { queryNodesFlat((Table)node); } else { Tables.Add((Table)node); } } else if (node is RuleNode) { RuleNodes.Add((RuleNode)node); } else if (node is EvalNode) { EvalNodes.Add((EvalNode)node); } } }
/// <summary> /// recursive helper method for queryNodesFlat /// </summary> /// <param name="table"> the sub table to be /// added to first level access</param> private void queryNodesFlat(Table table) { foreach (Table t in table.tables) { queryNodesFlat(t); tables.Add(t); } foreach (RuleNode node in table.ruleNodes) { RuleNodes.Add(node); } foreach (EvalNode node in table.evalNodes) { EvalNodes.Add(node); } }