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