// Copyright (c) 2008, NTT DATA Corporation.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Web;

namespace TERASOLUNA.Fw.Web.Controller
{
    /// <summary>
    /// リクエストコントローラで利用する各種定数を定義したクラスです。
    /// </summary>
    public static class RequestControllerConstants
    {
        /// <summary>
        /// ビジネスロジッククラスの <see cref="Type"/> を <seealso cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_BLogicClassType" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_BLOGIC_CLASS_TYPE = "TERASOLUNA_BLogicClassType";

        /// <summary>
        /// リクエストコントローラの識別子を <see cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_RequestType" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_REQUEST_TYPE = "TERASOLUNA_RequestType";

        /// <summary>
        /// リクエスト名を <see cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_RequestName" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_REQUEST_NAME = "TERASOLUNA_RequestName";

        /// <summary>
        /// 入力パラメータのデータセットクラスの <see cref="Type"/> を <see cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_InputDataSetType" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_INPUT_DATASET_CLASS_TYPE = "TERASOLUNA_InputDataSetType";

        /// <summary>
        /// 入力値検証用ファイルを <see cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_ValidationFilePath" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_VALIDATION_FILE_PATH = "TERASOLUNA_ValidationFilePath";

        /// <summary>
        /// 入力値検証用ルールセット文字列を <see cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_ValidationRuleSet" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_VALIDATION_RULESET= "TERASOLUNA_ValidationRuleSet";

        /// <summary>
        /// <see cref="RequestControllerFactory"/> において発生した例外情報を <see cref="HttpContext.Items"/> へ
        /// 設定/取得する際にキーとなる文字列です。
        /// </summary>
        /// <remarks>
        /// <para>
        /// この定数の値は "TERASOLUNA_ControllerFactoryError" です。
        /// </para>
        /// </remarks>
        public static readonly string KEY_CONTROLLER_FACTORY_ERR = "TERASOLUNA_ControllerFactoryError";
    }
}
