Beispiel #1
0
 public Node GetMultipleNode(Node parentNode, INodeGetter nodeGetter)
 {
     foreach (Node child in parentNode.Children)
     {
         return(nodeGetter.GetNode(child));
     }
 }
Beispiel #2
0
 public Node GetRepeatingNode(Node parentNode, INodeGetter nodeGetter)
 {
     for (int i = 0; i < parentNode.Count; i++)
     {
         // Assume meaningful constructor for Node
         return(nodeGetter.GetNode(new Node(i)));
     }
 }
Beispiel #3
0
    public Node GetNode(Node parentNode, INodeGetter nodeGetter)
    {
        switch (parentNode.NodeType)
        {
        case NodeType.Multiple:
            return(nodeGetter.GetMultipleNode(parentNode, nodeGetter));

        case NodeType.Repeating:
            return(nodeGetter.GetRepeatingNode(parentNode, nodeGetter));

        default:
            throw new NotSupportedException(
                      "Node type not supported: " + parentNode.NodeType);
        }
    }
    public Node GetNode(Node parentNode, INodeGetter nodeGetter)
    {
        var node = new node();

        switch (parentNode.NodeType)
        {
        case NodeType.Multiple:
            node = GetMultipleNode(parentNode, nodeGetter);
            break;

        case NodeType.Repeating:
            node = GetRepeatingNode(parentNode, nodeGetter);
            break;
        }

        return(node);
    }