예제 #1
0
 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);
     }
 }
예제 #2
0
 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;
 }
예제 #3
0
 public SoaObject GetObject(DynamicObjectNode node)
 {
     try
     {
         return objects[node.GetNode()];
     }
     catch (KeyNotFoundException exception)
     {
         throw new SoaLanguageException("The node had not been processed yet", exception);
     }
 }