/// <summary>
 /// Writes <paramref name="text"/> to the underlying stream with the tabs given by <paramref name="queue"/>.
 /// </summary>
 /// <param name="writer">A <see cref="TextWriter"/> used to write to a stream.</param>
 /// <param name="queue">A <see cref="TabQueue"/> describing the current state of the tabs.</param>
 /// <param name="text">A string representing the output text.</param>
 public static void WriteLine(this TextWriter writer, TabQueue queue, string text)
 {
     writer.WriteLine(queue.ToString() + text);
 }
 /// <summary>
 /// Appends a copy of the specified string followed by the default line terminator to the end of the current System.Text.StringBuilder object.
 /// </summary>
 /// <param name="builder">The <see cref="StringBuilder"/> object to extend.</param>
 /// <param name="value">The value to append</param>
 /// <param name="queue">A <see cref="TabQueue"/> object that keeps track of tabs.</param>
 /// <returns>The result with the appropriate tabs appended to the begining of value.</returns>
 public static StringBuilder AppendLine(this StringBuilder builder, string value, TabQueue queue)
 {
     return builder.AppendLine(queue.ToString() + value);
 }
 /// <summary>
 /// Writes <paramref name="format"/> to the underlying stream with the tabs given by <paramref name="queue"/>.
 /// </summary>
 /// <param name="writer">A <see cref="TextWriter"/> used to write to a stream.</param>
 /// <param name="queue">A <see cref="TabQueue"/> describing the current state of the tabs.</param>
 /// <param name="format">A string representing the format of the output.</param>
 /// <param name="args">An array of objects used to populate the arguments within <paramref name="format"/>.</param>
 public static void WriteLine(this TextWriter writer, TabQueue queue, string format, params object[] args)
 {
     writer.WriteLine(queue.ToString() + format, args);
 }
 /// <summary>
 /// The base Constructor.
 /// </summary>
 public BaseEntityGenerator()
 {
     TabQueue = new TabQueue();
 }