Пример #1
0
        /// <summary>
        /// イベントコマンド文用文字列を生成する。
        /// </summary>
        /// <param name="resolver">[NotNull] 名前解決クラスインスタンス</param>
        /// <param name="sentenceType">[NotNull] イベントコマンド種別</param>
        /// <param name="valueType">[NotNull] 変数種別</param>
        /// <param name="desc">[Nullable] 付加情報</param>
        /// <returns>イベントコマンド文字列</returns>
        /// <exception cref="ArgumentNullException">
        ///     resolver, type が null の場合、
        ///     または必要なときに desc または desc のプロパティが null の場合
        /// </exception>
        public string MakeEventCommandString(EventCommandSentenceResolver resolver,
                                             EventCommandSentenceType sentenceType, VariableAddressValueType valueType,
                                             EventCommandSentenceResolveDesc desc)
        {
            if (resolver is null)
            {
                throw new ArgumentNullException(
                          ErrorMessage.NotNull(nameof(resolver)));
            }
            if (sentenceType is null)
            {
                throw new ArgumentNullException(
                          ErrorMessage.NotNull(nameof(sentenceType)));
            }
            if (valueType is null)
            {
                throw new ArgumentNullException(
                          ErrorMessage.NotNull(nameof(valueType)));
            }

            if (!ValueType.CheckTypeInclude(valueType))
            {
                return(valueType.MakeEventCommandErrorSentence(Value));
            }

            return(ResolveEventCommandString(resolver, sentenceType,
                                             desc));
        }