//──────────────────────────────────────── /// <summary> /// 新しいインスタンスを作ります。 /// </summary> /// <param name="log_Reports"></param> /// <returns></returns> public Expr_LeafString NewInstance( Conf_String parent_Expression, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(); log_Method.BeginMethod(Info_Syntax.Name_Library, this, "NewInstance", log_Reports); // // // // Expr_LeafStringImpl result = new Expr_LeafStringImpl(null, parent_Expression); result.SetString( this.sHumanInput, log_Reports ); // // log_Method.EndMethod(log_Reports); return(result); }
//──────────────────────────────────────── /// <summary> /// /// </summary> /// <param name="name">引数名</param> /// <param name="value">その値</param> /// <param name="cElm">引数のコンフィグ</param> /// <param name="eParent">親Expr</param> /// <param name="isRequired"></param> /// <param name="log_Reports"></param> /// <returns></returns> public bool TryGetValue2( PmName name, out Expr_String value, Conf_String cElm, Expr_String eParent, bool isRequired, Log_Reports log_Reports ) { bool isHit = false; string s;//コントロール名 this.TryGetValue(name, out s, isRequired, log_Reports); if (log_Reports.Successful) { value = new Expr_LeafStringImpl(s, eParent, cElm); isHit = true; } else { value = null; } return(isHit); }
//──────────────────────────────────────── /// <summary> /// 文字列を、子要素として追加。 /// </summary> /// <param name="contents"></param> /// <param name="s_ParentNode"></param> /// <param name="log_Reports"></param> public void AppendTextNode( string contents, Conf_String parent_Conf, Log_Reports log_Reports ) { Expr_LeafStringImpl eChild = new Expr_LeafStringImpl(null, parent_Conf); eChild.SetString(contents, log_Reports); this.ChildNodes.Add(eChild, log_Reports); }
//──────────────────────────────────────── /// <summary> /// 文字列を、子要素として追加。 /// </summary> /// <param name="humaninput"></param> /// <param name="cParent"></param> /// <param name="log_Reports"></param> public void AppendTextNode( string humaninput, Conf_String cParent, Log_Reports log_Reports ) { Expr_LeafStringImpl eAtom = new Expr_LeafStringImpl(null, cParent); eAtom.SetString( humaninput, log_Reports ); this.ChildNodes.Add( eAtom, log_Reports ); }
//──────────────────────────────────────── /// <summary> /// /// </summary> /// <param name="e_Result">検索結果。</param> /// <param name="name"></param> /// <param name="bRequired"></param> /// <param name="hits"></param> /// <param name="log_Reports"></param> /// <returns>検索結果が1件以上あれば真。</returns> public bool TrySelect( out Expr_String out_eResult, string name, EnumHitcount hits, Log_Reports log_Reports//bug:ヌルのことがある? ) { Log_Method log_Method = new Log_MethodImpl(); log_Method.BeginMethod(Info_Syntax.Name_Library, this, "TrySelect", log_Reports); // bool isHit; if (this.map.ContainsKey(name)) { // ヒット。 out_eResult = this.map[name]; isHit = true; } else { // 一致なし。 isHit = false; if (Utility_Hitcount.IsError_IfNoHit(hits, log_Reports)) { //エラーにする。 out_eResult = null; goto gt_Error_NotFoundOne; } else { // 該当しないキーを指定され、値を取得できなかったが、エラー報告しない。 Conf_String parent_Conf = new Conf_StringImpl("!ハードコーディング_NStringDictionaryImpl#Get", null); out_eResult = new Expr_LeafStringImpl(null, parent_Conf); } } goto gt_EndMethod; // #region 異常系 //──────────────────────────────────────── gt_Error_NotFoundOne: if (log_Reports.CanCreateReport) { Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー141!", log_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append("指定された名前["); s.Append(name); s.Append("]は、“EDic(連想配列)”の中にありませんでした。"); s.Newline(); s.Append("┌────────┐キー一覧(個数=["); s.Append(this.map.Count); s.Append("])"); s.Newline(); foreach (string sKey in this.map.Keys) { s.Append("["); s.Append(sKey); s.Append("]"); s.Newline(); } s.Append("└────────┘"); s.Newline(); // ヒント if (null != this.Owner_Conf) { s.Append("◆オーナー情報1"); s.Newline(); this.Owner_Conf.ToText_Content(s); } if (0 < this.map.Count) { foreach (Expr_String eItem in this.map.Values) { Expr_String eParent = eItem.Parent; if (null != eParent)//親要素が設定されていないことがある。 { // 最初の1個。 s.Append("◆最初の要素の親の情報。"); s.Newline(); eParent.ToText_Snapshot(s); } break; } } // // オーナーの情報。 if (null != this.owner_Conf)//オーナー要素が設定されていないことがある。 { s.Newline(); s.Newline(); s.Append("◆オーナー情報2。"); s.Newline(); this.owner_Conf.ToText_Locationbreadcrumbs(s); } r.Message = s.ToString(); log_Reports.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // gt_EndMethod: log_Method.EndMethod(log_Reports); return(isHit); }