public void AddObject(DynamicObjectNode node, SoaObject @object) { try { objects.Add(node.GetNode(), @object); @object.AddMetaInfo(new NodeInfo(node)); } catch (ArgumentException exception) { throw new SoaLanguageException("The node had been already processed", exception); } }
public virtual object ProcessChildren(DynamicObjectNode node) { List<object> result = new List<object>(); foreach (var item in node.GetNode().Edges) { DynamicObjectNode dynamicNode = DynamicObjectNode.NodeToObject(node.GetParser(), item.Node) as DynamicObjectNode; if (dynamicNode != null) { object itemResult = this.Process(dynamicNode); if (itemResult != null) { result.Add(itemResult); } } } if (result.Count > 0) return result; else return null; }
public SoaObject GetObject(DynamicObjectNode node) { try { return objects[node.GetNode()]; } catch (KeyNotFoundException exception) { throw new SoaLanguageException("The node had not been processed yet", exception); } }