public string GetMessage(Log_Reports log_Reports) { Expr_String eStr = this.p1pText.Compile(log_Reports); StringBuilder sb = new StringBuilder(); sb.Append(eStr.Lv4Execute_OnImplement(EnumHitcount.Unconstraint, log_Reports)); sb.Append(System.Environment.NewLine); // コールスタックを付けます。 sb.Append(this.text_Callstack); return(sb.ToString()); }
//──────────────────────────────────────── public virtual string Lv5_Implement( Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(); log_Method.BeginMethod(Info_Syntax.Name_Library, this, "Lv5_Implement", log_Reports); // // StringBuilder sb_Result = new StringBuilder(); List <Expr_String> eChildList = this.ChildNodes.SelectList(EnumHitcount.Unconstraint, log_Reports); switch (this.enumHitcount) { case EnumHitcount.First_Exist: { // // 最初の1件のみ。存在しない場合エラー。 // if (0 < eChildList.Count) { Expr_String eChild = eChildList[0]; string s = eChild.Lv4Execute_OnImplement(this.enumHitcount, log_Reports); sb_Result.Append(s); } else { // // エラー goto gt_Error_NotFoundOne; } } break; case EnumHitcount.First_Exist_Or_Zero: { // // 最初の1件のみ。存在しない場合、空文字列。 // if (0 < eChildList.Count) { Expr_String eChild = eChildList[0]; string s = eChild.Lv4Execute_OnImplement(this.enumHitcount, log_Reports); sb_Result.Append(s); } else { // // 存在しないので、空文字列。 // // そのままスルー。 } } break; case EnumHitcount.Unconstraint: { // // 制限なし // foreach (Expr_String eChild in eChildList) { string s = eChild.Lv4Execute_OnImplement(this.enumHitcount, log_Reports); sb_Result.Append(s); } } break; default: { // // エラー goto gt_Error_UndefinedEnum; } } goto gt_EndMethod; // #region 異常系 //──────────────────────────────────────── gt_Error_NotFoundOne: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー111!", log_Method); StringBuilder sb = new StringBuilder(); sb.Append("必ず、最初の1件を取得する指定でしたが、1件も存在しませんでした。"); sb.Append(Environment.NewLine); sb.Append(Environment.NewLine); // ヒント r.Message = sb_Result.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_UndefinedEnum: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー113!", log_Method); StringBuilder sb = new StringBuilder(); sb.Append("this.requestItems.VolumeConstraintEnum=["); sb.Append(this.enumHitcount.ToString()); sb.Append("]には、プログラム側でまだ未対応です。"); // ヒント r.Message = sb_Result.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // gt_EndMethod: log_Method.EndMethod(log_Reports); return(sb_Result.ToString()); }