#region License
// Copyright 2005-2019 Paul Kohler (https://github.com/paulkohler/minisqlquery). All rights reserved.
// This source code is made available under the terms of the GNU Lesser General Public License v3.0
// https://github.com/paulkohler/minisqlquery/blob/master/LICENSE
#endregion
using System.IO;
namespace MiniSqlQuery.Core.DbModel
{
/// An SQL Writer interface.
public interface ISqlWriter
{
/// Gets or sets a value indicating whether IncludeComments.
/// The include comments.
bool IncludeComments { get; set; }
///
/// Gets or sets a value indicating whether to include read-only columns in the export SQL.
///
///
/// true if including read-only columns in the export; otherwise, false.
///
bool IncludeReadOnlyColumnsInExport { get; set; }
/// Gets or sets a value indicating whether InsertLineBreaksBetweenColumns.
/// The insert line breaks between columns.
bool InsertLineBreaksBetweenColumns { get; set; }
/// The write create.
/// The writer.
/// The column.
void WriteCreate(TextWriter writer, DbModelColumn column);
/// The write delete.
/// The writer.
/// The table or view.
void WriteDelete(TextWriter writer, DbModelTable tableOrView);
/// The write insert.
/// The writer.
/// The table or view.
void WriteInsert(TextWriter writer, DbModelTable tableOrView);
/// The write select.
/// The writer.
/// The table or view.
void WriteSelect(TextWriter writer, DbModelTable tableOrView);
/// The write select count.
/// The writer.
/// The table or view.
void WriteSelectCount(TextWriter writer, DbModelTable tableOrView);
/// The write summary.
/// The writer.
/// The column.
void WriteSummary(TextWriter writer, DbModelColumn column);
/// The write update.
/// The writer.
/// The table or view.
void WriteUpdate(TextWriter writer, DbModelTable tableOrView);
}
}