Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.43 KB | None | 0 0
  1. package message;
  2.  
  3. import org.json.*;
  4.  
  5. import server.Connection;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8.  
  9. public abstract class RequestMessage {
  10.     private static final Map<String, Class<? extends RequestMessage>> handlerMap =
  11.             new HashMap<String, Class<? extends RequestMessage>>();
  12.    
  13.     static {
  14.         handlerMap.put("hello", HelloRequestMessage.class);
  15.         handlerMap.put("goodbye", GoodbyeRequestMessage.class);
  16.         handlerMap.put("join", JoinRequestMessage.class);
  17.         handlerMap.put("leave", LeaveRequestMessage.class);
  18.         handlerMap.put("ban", BanRequestMessage.class);
  19.         handlerMap.put("invite", InviteRequestMessage.class);
  20.         handlerMap.put("kick", KickRequestMessage.class);
  21.         handlerMap.put("promote", PromoteRequestMessage.class);
  22.         handlerMap.put("undo", UndoRequestMessage.class);
  23.         handlerMap.put("roomset", SetRoomSettingsRequestMessage.class);
  24.         handlerMap.put("text", TextRequestMessage.class);
  25.     }
  26.    
  27.     public static final RequestMessage getFromInput(Connection conn, String request)
  28.             throws JSONException, ReflectiveOperationException {
  29.         JSONObject jobj = new JSONObject(request);
  30.         String type = jobj.getString("message");
  31.         Class<? extends RequestMessage> constr = handlerMap.get(type);
  32.         if(constr == null)
  33.             return null;
  34.         return constr.getDeclaredConstructor(RequestMessage.class).newInstance(conn, jobj);
  35.     }
  36.    
  37.     public RequestMessage(Connection conn, JSONObject jobj) { };
  38.     public abstract void process();
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement