1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package net.fckeditor.handlers;
22
23 import java.util.HashMap;
24 import java.util.Map;
25
26 import net.fckeditor.tool.Utils;
27
28
29
30
31
32
33 public class CommandHandler {
34
35 private String name;
36 private static Map<String, CommandHandler> getCommands = new HashMap<String, CommandHandler>(
37 3);
38 private static Map<String, CommandHandler> postCommands = new HashMap<String, CommandHandler>(
39 2);
40 public static final CommandHandler GET_FOLDERS = new CommandHandler("GetFolders");
41 public static final CommandHandler GET_FOLDERS_AND_FILES = new CommandHandler("GetFoldersAndFiles");
42 public static final CommandHandler CREATE_FOLDER = new CommandHandler("CreateFolder");
43 public static final CommandHandler FILE_UPLOAD = new CommandHandler("FileUpload");
44 public static final CommandHandler QUICK_UPLOAD = new CommandHandler("QuickUpload");
45
46 static {
47
48 getCommands.put(GET_FOLDERS.getName(), GET_FOLDERS);
49 getCommands.put(GET_FOLDERS_AND_FILES.getName(), GET_FOLDERS_AND_FILES);
50 getCommands.put(CREATE_FOLDER.getName(), CREATE_FOLDER);
51
52
53 postCommands.put(FILE_UPLOAD.getName(), FILE_UPLOAD);
54 postCommands.put(QUICK_UPLOAD.getName(), QUICK_UPLOAD);
55 }
56
57 private CommandHandler(final String name) {
58 this.name = name;
59 }
60
61
62
63
64
65
66 public String getName() {
67 return name;
68 }
69
70
71
72
73
74
75
76
77
78
79
80 public static CommandHandler valueOf(final String name) throws IllegalArgumentException {
81 if (Utils.isEmpty(name))
82 throw new IllegalArgumentException();
83
84 if (!isValidForGet(name) && !isValidForPost(name))
85 throw new IllegalArgumentException();
86 return (getCommands.get(name) != null) ? getCommands.get(name) : postCommands.get(name);
87 }
88
89
90
91
92
93
94
95
96
97
98
99 public static boolean isValidForGet(final String name) {
100 return getCommands.containsKey(name);
101 }
102
103
104
105
106
107
108
109
110
111
112 public static boolean isValidForPost(final String name) {
113 return postCommands.containsKey(name);
114 }
115
116
117
118
119
120
121
122
123
124
125 public static CommandHandler getCommand(final String name) {
126 try {
127 return CommandHandler.valueOf(name);
128 } catch (Exception e) {
129 return null;
130 }
131 }
132
133
134
135
136
137
138 @Override
139 public boolean equals(Object obj) {
140 if (obj == null)
141 return false;
142 try {
143 CommandHandler rt = (CommandHandler) obj;
144 return name.equals(rt.getName());
145 } catch (ClassCastException e) {
146 return false;
147 }
148 }
149
150
151
152
153
154
155 @Override
156 public int hashCode() {
157 return name.hashCode();
158 }
159
160
161
162
163
164
165 @Override
166 public String toString() {
167 return name;
168 }
169 }