// Copyright (C) 2009-2020 Xtensive LLC.
// This code is distributed under MIT license terms.
// See the License.txt file in the project root for more information.
// Created by: Denis Krjuchkov
// Created:    2009.02.24

namespace Xtensive.Reflection
{
  public partial class WellKnown
  {
    ///<summary>
    /// Various well-known constants related to <see cref="Tuple"/>.
    ///</summary>
    public static class Tuple
    {
      /// <summary>
      /// Returns "GetValueOrDefault".
      /// </summary>
      public const string GetValueOrDefault = "GetValueOrDefault";

      /// <summary>
      /// Returns "GetValue".
      /// </summary>
      public const string GetValue = "GetValue";

      /// <summary>
      /// Returns "SetValue".
      /// </summary>
      public const string SetValue = "SetValue";

      /// <summary>
      /// Returns "HasValue".
      /// </summary>
      public const string HasValue = "HasValue";

      /// <summary>
      /// Returns "GetFieldState".
      /// </summary>
      public const string GetFieldState = "GetFieldState";

      /// <summary>
      /// Returns "SetFieldState".
      /// </summary>
      public const string SetFieldState = "SetFieldState";

      /// <summary>
      /// Returns "descriptor".
      /// </summary>
      public const string DescriptorFieldName = "descriptor";

      /// <summary>
      /// Returns "GetValue{0}".
      /// </summary>
      public const string GetValueX = "GetValue{0}";

      /// <summary>
      /// Returns "GetNullableValueOrDefault{0}".
      /// </summary>
      public const string GetNullableValueX = "GetNullableValue{0}";

      /// <summary>
      /// Returns "SetValue{0}".
      /// </summary>
      public const string SetValueX = "SetValue{0}";

      /// <summary>
      /// Returns "SetNullableValue{0}".
      /// </summary>
      public const string SetNullableValueX = "SetNullableValue{0}";

      /// <summary>
      /// Returns "getValueDelegates".
      /// </summary>
      public const string GetValueDelegatesFieldName = "getValueDelegates";

      /// <summary>
      /// Returns "getNullableValueDelegates".
      /// </summary>
      public const string GetNullableValueDelegatesFieldName = "getNullableValueDelegates";

      /// <summary>
      /// Returns "setValueDelegates".
      /// </summary>
      public const string SetValueDelegatesFieldName = "setValueDelegates";

      /// <summary>
      /// Returns "setNullableValueDelegates".
      /// </summary>
      public const string SetNullableValueDelegatesFieldName = "setNullableValueDelegates";
      
      /// <summary>
      /// Returns "GetGetValueDelegate".
      /// </summary>
      public const string GetGetValueDelegate = "GetGetValueDelegate";

      /// <summary>
      /// Returns "GetGetNullableValueDelegate".
      /// </summary>
      public const string GetGetNullableValueDelegate = "GetGetNullableValueDelegate";

      /// <summary>
      /// Returns "GetSetValueDelegate".
      /// </summary>
      public const string GetSetValueDelegate = "GetSetValueDelegate";

      /// <summary>
      /// Returns "GetSetValueDelegate".
      /// </summary>
      public const string GetSetNullableValueDelegate = "GetSetNullableValueDelegate";

      /// <summary>
      /// Returns "Descriptor".
      /// </summary>
      public const string Descriptor = "Descriptor";

      /// <summary>
      /// Returns "Count".
      /// </summary>
      public const string Count = "Count";

      /// <summary>
      /// Returns "Create".
      /// </summary>
      public const string Create = "Create";

      /// <summary>
      /// Returns "CreateNew".
      /// </summary>
      public const string CreateNew = "CreateNew";
    }

  }
}
