OSDN Git Service

ed80bf3e8118f5e365d6740040d226ec431420d3
[kybernetes/Kybernetes.git] / KyberNetes / data / accessor / CommandDataAccessor.cs
1 using System.Collections.Generic;\r
2 using System.Data.SQLite;\r
3 using com.andoutomo.kybernetes.data.connection;\r
4 using com.andoutomo.kybernetes.data.DAO;\r
5 \r
6 \r
7 namespace com.andoutomo.kybernetes.data.accessor\r
8 {\r
9     class CommandDataAccessor\r
10     {\r
11         #region singleton\r
12         private static CommandDataAccessor accessor;\r
13         private CommandDataAccessor()\r
14         {\r
15         }\r
16         internal static CommandDataAccessor getObject\r
17         {\r
18             get\r
19             {\r
20                 if (accessor == null)\r
21                 {\r
22                     accessor = new CommandDataAccessor();\r
23                 }\r
24                 return accessor;\r
25             }\r
26         }\r
27 \r
28         #endregion\r
29 \r
30         /// <summary>\r
31         /// DBテーブル"tbl_command"から、呼び出すクラス名を取得する\r
32         /// </summary>\r
33         /// <param name="commandStr">呼び出したコマンド(引数は別)</param>\r
34         /// <returns>コマンドデータ</returns>\r
35         internal CommandData getCommandData(string commandStr)\r
36         {\r
37             CommandData result = null;\r
38             List<object> list = new List<object>();\r
39             list.Add(commandStr);\r
40             SettingDBConnection.Connection.selectData(CommandSqlDictionary.getCommand, list,\r
41             (SQLiteDataReader reader) =>\r
42             {\r
43                 if (reader.HasRows != false)\r
44                 {\r
45                     result = new CommandData();\r
46                     reader.Read();\r
47                     result.TargetClass = reader["TARGETCLASS"].ToString();\r
48                     result.ArgClass = reader["ARGCLASS"].ToString();\r
49                     result.CmdStr = commandStr;\r
50                 }\r
51             });\r
52             return result;\r
53         }\r
54 \r
55         internal List<HelpData> getAllHelp()\r
56         {\r
57             List<HelpData> allHelp = new List<HelpData>();\r
58             SettingDBConnection.Connection.selectData(CommandSqlDictionary.HELPALL, new List<object>(),\r
59                 (SQLiteDataReader reader)=>{\r
60                     while (reader.Read())\r
61                     {\r
62                         HelpData data = new HelpData(reader["CMDSTR"].ToString(), reader["SUMMARY"].ToString());\r
63                         allHelp.Add(data);\r
64                     }\r
65                 });\r
66             return allHelp;\r
67         }\r
68         /// <summary>\r
69         /// 個別コマンドのヘルプを出力します。\r
70         /// </summary>\r
71         /// <param name="cmdStr"></param>\r
72         /// <returns></returns>\r
73         internal HelpData getHelpData(string cmdStr)\r
74         {\r
75             List<object> parameters = new List<object>();\r
76             parameters.Add(cmdStr);\r
77             HelpData retVal =null;\r
78             SettingDBConnection.Connection.selectData(CommandSqlDictionary.getHelp, parameters,\r
79                 (SQLiteDataReader reader) =>\r
80                 {\r
81                     if (reader.HasRows)\r
82                     {\r
83                         reader.Read();\r
84                         retVal = new HelpData(\r
85                             reader["CMDSTR"].ToString(), \r
86                             reader["SUMMARY"].ToString(), \r
87                             reader["Detail"].ToString());\r
88                     }\r
89                 });\r
90             return retVal;\r
91         }\r
92         /// <summary>\r
93         /// そのコマンドに紐づくアライアスを抽出します。\r
94         /// </summary>\r
95         /// <param name="cmdStr"></param>\r
96         /// <returns></returns>\r
97         internal string getAlies(string cmdStr)\r
98         {\r
99             List<object> parameters = new List<object>();\r
100             parameters.Add(cmdStr);\r
101             string retStr = string.Empty;\r
102 \r
103             SettingDBConnection.Connection.selectData(CommandSqlDictionary.getLink, parameters,\r
104                 (SQLiteDataReader reader) =>\r
105                 {\r
106                     while (reader.Read())\r
107                     {\r
108                         if (string.IsNullOrEmpty(retStr))\r
109                         {\r
110                             retStr += reader["link_command"].ToString();\r
111                         }\r
112                         else\r
113                         {\r
114                             retStr += "," + reader["link_command"].ToString();\r
115                         }\r
116                     }\r
117                 });\r
118             return retStr; \r
119         }\r
120     }\r
121 }\r