private void GenerateChildNodes(CustomNode node)
    {
        switch (node.Type)
        {
        case NodeType.Server:
            NodeDataGenerator.GenerateDatabasesNode(node, _databaseOperation);
            break;

        case NodeType.Tables:
            NodeDataGenerator.GenerateTablesNode(node, _databaseOperation);
            break;

        case NodeType.Views:
            NodeDataGenerator.GenerateViewsNode(node, _databaseOperation);
            break;

        case NodeType.StoredProcedures:
            NodeDataGenerator.GenerateProceduresNode(node, _databaseOperation);
            break;

        case NodeType.TableValuedFunctions:
            NodeDataGenerator.GenerateTableValuedFunctionsNode(node, _databaseOperation);
            break;

        case NodeType.ScalarValuedFunctions:
            NodeDataGenerator.GenerateScalarValuedFunctionsNode(node, _databaseOperation);
            break;

        case NodeType.TableColumns:
            NodeDataGenerator.GenerateTableColumnsNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.ViewColumns:
            NodeDataGenerator.GenerateViewColumnsNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.TableKeys:
            NodeDataGenerator.GenerateTableKeysNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.TableConstraints:
            NodeDataGenerator.GenerateTableConstraintsNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.TableTriggers:
            NodeDataGenerator.GenerateTableTriggersNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.TableIndexes:
            NodeDataGenerator.GenerateTableIndexesNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.ViewTriggers:
            NodeDataGenerator.GenerateViewTriggersNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.ViewIndexes:
            NodeDataGenerator.GenerateViewIndexesNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.TableValuedFunctionParameters:
            NodeDataGenerator.GenerateTableValuedFunctionParametersNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.ScalarValuedFunctionParameters:
            NodeDataGenerator.GenerateScalarValuedFunctionParametersNode(node, node.ParentNode.Text, _databaseOperation);
            break;

        case NodeType.StoredProcedureParameters:
            NodeDataGenerator.GenerateStoredProcedureParametersNode(node, node.ParentNode.Text, _databaseOperation);
            break;
        }
    }