OSDN Git Service

構成変更のためファイルを置き直し。
[kybernetes/Kybernetes.git] / base / command / SYSTEM / LinkCommand.cs
diff --git a/base/command/SYSTEM/LinkCommand.cs b/base/command/SYSTEM/LinkCommand.cs
new file mode 100644 (file)
index 0000000..020230e
--- /dev/null
@@ -0,0 +1,91 @@
+using System.Collections.Generic;\r
+using com.andoutomo.kybernetes.data.accessor;\r
+using com.andoutomo.kybernetes.data.DAO;\r
+\r
+namespace com.andoutomo.kybernetes.command.SYSTEM\r
+{\r
+    class LinkCommand:AbCommand\r
+    {\r
+        LinkCommandArg param;\r
+        string errMessage;\r
+\r
+        protected override bool execute()\r
+        {\r
+            param = (LinkCommandArg)argument;\r
+            LinkDataAccessor accessor = LinkDataAccessor.getObject;\r
+            bool hasLink =accessor.hasLink(param.ShortcutStr);\r
+            bool retVal=false;\r
+\r
+            //リストモード(一覧取得)\r
+            if (param.listMode)\r
+            {\r
+                List<SimpleDataBean> linklist = accessor.getAllLink();\r
+                List<string> retList = new List<string>();\r
+                foreach (SimpleDataBean data in linklist)\r
+                {\r
+                    retList.Add(data.Name + " -> " + data.Val);\r
+                }\r
+                form.addMultiText(retList);\r
+                retStr = string.Empty;\r
+                return true;\r
+            }\r
+\r
+\r
+            if (param.removeMode)\r
+                //削除\r
+            {\r
+                if (hasLink)\r
+                {\r
+                    //削除対象があれば削除\r
+                    retVal = accessor.removeLink(param.ShortcutStr);\r
+                }\r
+                else\r
+                {\r
+                    //ない場合はエラー\r
+                    errMessage = "リンク " + param.ShortcutStr + " は存在しないため、削除できません。";\r
+                    retVal = false;\r
+                }\r
+            }\r
+            else\r
+                //追加\r
+            {\r
+                if (hasLink)\r
+                {\r
+                    //追加対象が既にあればエラー\r
+                    errMessage = "リンク " + param.ShortcutStr + " は既に存在するため、作成できません。";\r
+                    retVal = false;\r
+                }\r
+                else\r
+                {\r
+                    //ない場合に作成する\r
+                    retVal = accessor.addLink(param.ShortcutStr, param.BaseCommandStr);\r
+\r
+                }\r
+            }\r
+            retStr = param.ShortcutStr + "->" + param.BaseCommandStr;\r
+            return retVal;\r
+        }\r
+        string retStr;\r
+        protected override string turnMessage()\r
+        {\r
+            return retStr;\r
+        }\r
+\r
+        protected override string turnErrorMessage()\r
+        {\r
+            if (string.IsNullOrEmpty(errMessage))\r
+            {\r
+                return base.DefaultErrorMessage;\r
+            }\r
+            else\r
+            {\r
+                return errMessage;\r
+            }\r
+        }\r
+\r
+        protected override string turnSplitErrorMessage()\r
+        {\r
+            return base.DefaultSplitErrorMessage;\r
+        }\r
+    }\r
+}\r