OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / base / data / accessor / CommandDataAccessor.cs
diff --git a/base/data/accessor/CommandDataAccessor.cs b/base/data/accessor/CommandDataAccessor.cs
new file mode 100644 (file)
index 0000000..5b58af6
--- /dev/null
@@ -0,0 +1,138 @@
+using System.Collections.Generic;\r
+using System.Data.SQLite;\r
+using com.andoutomo.kybernetes.data.connection;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+\r
+\r
+namespace com.andoutomo.kybernetes.data.accessor\r
+{\r
+    public class CommandDataAccessor\r
+    {\r
+        #region singleton\r
+        private static CommandDataAccessor accessor;\r
+        private CommandDataAccessor()\r
+        {\r
+        }\r
+        public static CommandDataAccessor getObject\r
+        {\r
+            get\r
+            {\r
+                if (accessor == null)\r
+                {\r
+                    accessor = new CommandDataAccessor();\r
+                }\r
+                return accessor;\r
+            }\r
+        }\r
+\r
+        #endregion\r
+\r
+        /// <summary>\r
+        /// DBテーブル"tbl_command"から、呼び出すクラス名を取得する\r
+        /// </summary>\r
+        /// <param name="commandStr">呼び出したコマンド(引数は別)</param>\r
+        /// <returns>コマンドデータ</returns>\r
+        public CommandData getCommandData(string commandStr)\r
+        {\r
+            CommandData result = null;\r
+            List<object> list = new List<object>();\r
+            list.Add(commandStr);\r
+            SettingDBConnection.Connection.selectData(CommandSqlDictionary.getCommand, list,\r
+            (SQLiteDataReader reader) =>\r
+            {\r
+                if (reader.HasRows != false)\r
+                {\r
+                    result = new CommandData();\r
+                    reader.Read();\r
+                    result.TargetClass = reader["TARGETCLASS"].ToString();\r
+                    result.ArgClass = reader["ARGCLASS"].ToString();\r
+                    result.CmdStr = commandStr;\r
+                }\r
+            });\r
+            return result;\r
+        }\r
+\r
+        public List<HelpData> getAllHelp()\r
+        {\r
+            List<HelpData> allHelp = new List<HelpData>();\r
+            SettingDBConnection.Connection.selectData(CommandSqlDictionary.HELPALL, new List<object>(),\r
+                (SQLiteDataReader reader)=>{\r
+                    while (reader.Read())\r
+                    {\r
+                        HelpData data = new HelpData(reader["CMDSTR"].ToString(), reader["SUMMARY"].ToString());\r
+                        allHelp.Add(data);\r
+                    }\r
+                });\r
+            return allHelp;\r
+        }\r
+        /// <summary>\r
+        /// 個別コマンドのヘルプを出力します。\r
+        /// </summary>\r
+        /// <param name="cmdStr"></param>\r
+        /// <returns></returns>\r
+        public HelpData getHelpData(string cmdStr)\r
+        {\r
+            List<object> parameters = new List<object>();\r
+            parameters.Add(cmdStr);\r
+            HelpData retVal =null;\r
+            SettingDBConnection.Connection.selectData(CommandSqlDictionary.getHelp, parameters,\r
+                (SQLiteDataReader reader) =>\r
+                {\r
+                    if (reader.HasRows)\r
+                    {\r
+                        reader.Read();\r
+                        retVal = new HelpData(\r
+                            reader["CMDSTR"].ToString(), \r
+                            reader["SUMMARY"].ToString(), \r
+                            reader["Detail"].ToString());\r
+                    }\r
+                });\r
+            return retVal;\r
+        }\r
+        /// <summary>\r
+        /// そのコマンドに紐づくアライアスを抽出します。\r
+        /// </summary>\r
+        /// <param name="cmdStr"></param>\r
+        /// <returns></returns>\r
+        public string getAlies(string cmdStr)\r
+        {\r
+            List<object> parameters = new List<object>();\r
+            parameters.Add(cmdStr);\r
+            string retStr = string.Empty;\r
+\r
+            SettingDBConnection.Connection.selectData(CommandSqlDictionary.getLink, parameters,\r
+                (SQLiteDataReader reader) =>\r
+                {\r
+                    while (reader.Read())\r
+                    {\r
+                        if (string.IsNullOrEmpty(retStr))\r
+                        {\r
+                            retStr += reader["link_command"].ToString();\r
+                        }\r
+                        else\r
+                        {\r
+                            retStr += "," + reader["link_command"].ToString();\r
+                        }\r
+                    }\r
+                });\r
+            return retStr; \r
+        }\r
+        /// <summary>\r
+        /// コマンド用のdllリストを抽出します。\r
+        /// </summary>\r
+        /// <returns></returns>\r
+        public List<SimpleDataBean> getDllList()\r
+        {\r
+            List<SimpleDataBean> retData = new List<SimpleDataBean>();\r
+            SettingDBConnection.Connection.selectData("SELECT LIB_NAME FROM TBL_DLL",\r
+                (SQLiteDataReader reader) =>\r
+            {\r
+                while (reader.Read())\r
+                {\r
+                    retData.Add(new SimpleDataBean(reader["LIB_NAME"].ToString()));\r
+                }\r
+            });\r
+            return retData;\r
+        }\r
+    }\r
+}\r