private void AddOutEdgesRecursive(JToken outEdgeSpec, List<string> list)
{
if (!(outEdgeSpec is JValue))
{
string specType = outEdgeSpec["type"].ToString();
switch (specType)
{
case "trigger_one":
case "trigger_many":
JToken outEdges = outEdgeSpec["out_edges"];
IList<JToken> results = outEdges.ToList();
foreach (JToken child in results)
{
AddOutEdgesRecursive(child, list);
}
break;
case "weighted_edge":
JToken outEdge = outEdgeSpec["out_edge"];
AddOutEdgesRecursive(outEdge, list);
break;
}
}
else
{
list.Add(outEdgeSpec.ToString());
}
}