// Copyright (C) 2003-2010 Xtensive LLC.
// All rights reserved.
// For conditions of distribution and use, see license.

using System;
using Xtensive.Core;

namespace Xtensive.Sql.Dml
{
  [Serializable]
  public class SqlNull : SqlExpression
  {
    public override void ReplaceWith(SqlExpression expression)
    {
      _ = ArgumentValidator.EnsureArgumentIs<SqlNull>(expression);
    }
    
    internal override SqlNull Clone(SqlNodeCloneContext context)
    {
      return this;
    }
    
    internal SqlNull() : base(SqlNodeType.Null)
    {
    }

    public override void AcceptVisitor(ISqlVisitor visitor)
    {
      visitor.Visit(this);
    }
  }
}
