Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package message;
- import org.json.*;
- import server.Connection;
- import java.util.HashMap;
- import java.util.Map;
- public abstract class RequestMessage {
- private static final Map<String, Class<? extends RequestMessage>> handlerMap =
- new HashMap<String, Class<? extends RequestMessage>>();
- static {
- handlerMap.put("hello", HelloRequestMessage.class);
- handlerMap.put("goodbye", GoodbyeRequestMessage.class);
- handlerMap.put("join", JoinRequestMessage.class);
- handlerMap.put("leave", LeaveRequestMessage.class);
- handlerMap.put("ban", BanRequestMessage.class);
- handlerMap.put("invite", InviteRequestMessage.class);
- handlerMap.put("kick", KickRequestMessage.class);
- handlerMap.put("promote", PromoteRequestMessage.class);
- handlerMap.put("undo", UndoRequestMessage.class);
- handlerMap.put("roomset", SetRoomSettingsRequestMessage.class);
- handlerMap.put("text", TextRequestMessage.class);
- }
- public static final RequestMessage getFromInput(Connection conn, String request)
- throws JSONException, ReflectiveOperationException {
- JSONObject jobj = new JSONObject(request);
- String type = jobj.getString("message");
- Class<? extends RequestMessage> constr = handlerMap.get(type);
- if(constr == null)
- return null;
- return constr.getDeclaredConstructor(RequestMessage.class).newInstance(conn, jobj);
- }
- public RequestMessage(Connection conn, JSONObject jobj) { };
- public abstract void process();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement