SecureDelete.FileSearch.ExpressionEvaluator.TreeToString C# (CSharp) Method

TreeToString() private method

Converts the tree to string representation.
private TreeToString ( ExpressionNode node ) : string
node ExpressionNode The base node.
return string
        private string TreeToString(ExpressionNode node)
        {
            if(node == null) {
                return string.Empty;
            }

            StringBuilder builder = new StringBuilder();

            if(node.Left != null) {
                if(node.Left.Type == ExpressionType.Implication) {
                    builder.Append(ExpressionStartChar);
                }

                builder.Append(TreeToString(node.Left));

                if(node.Left.Type == ExpressionType.Implication) {
                    builder.Append(ExpressionEndChar);
                }
            }

            if(node.Type == ExpressionType.Implication) {
                builder.Append(" ");
                ImplicationNode implication = (ImplicationNode)node;

                if(implication.Implication == FilterImplication.AND) {
                    builder.Append(AndImplication);
                }
                else if(implication.Implication == FilterImplication.OR) {
                    builder.Append(OrImplication);
                }

                builder.Append(" ");
            }
            else {
                FilterNode filter = (FilterNode)node;

                if(filter.Filter.Name != null) {
                    builder.Append(filter.Filter.Name);
                }
            }

            if(node.Right != null) {
                if(node.Right.Type == ExpressionType.Implication) {
                    builder.Append(ExpressionStartChar);
                }

                builder.Append(TreeToString(node.Right));

                if(node.Right.Type == ExpressionType.Implication) {
                    builder.Append(ExpressionEndChar);
                }
            }

            return builder.ToString();
        }