qsadfasdgfgads

Untitled

May 21st, 2023
579
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.91 KB | None | 0 0
  1. public abstract sealed class ServerMessage implements Serializable
  2.         permits ServerMessage.EmptySuccess, ServerMessage.Error, ServerMessage.ListMembers,
  3.         ServerMessage.ListMessages, ServerMessage.LoginResponse, ServerMessage.NewMessage {
  4.     private static final XmlMapper xmlMapper = new XmlMapper();
  5.  
  6.     static {
  7.         xmlMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
  8.     }
  9.  
  10.     @JsonIgnore
  11.     private final ErrorType errorType;
  12.  
  13.     protected ServerMessage(ErrorType errorType) {
  14.         this.errorType = errorType;
  15.     }
  16.  
  17.     public static byte[] serialize(ServerMessage message) throws IOException {
  18.         return xmlMapper.writer().withRootName(message.getErrorType().name()).writeValueAsString(message).getBytes();
  19.     }
  20.  
  21.     public static ServerMessage deserialize(byte[] input) throws IOException, ClassNotFoundException {
  22.         return xmlMapper.readValue(input, ServerMessage.class);
  23.     }
  24.  
  25.     public ErrorType getErrorType() {
  26.         return errorType;
  27.     }
  28.  
  29.     public enum ErrorType {
  30.         ERROR, SUCCESS
  31.     }
  32.  
  33.     public static final class LoginResponse extends ServerMessage {
  34.         private final int sessionID;
  35.  
  36.         public LoginResponse(int sessionId) {
  37.             super(ErrorType.SUCCESS);
  38.             sessionID = sessionId;
  39.         }
  40.  
  41.         public int getSessionID() {
  42.             return sessionID;
  43.         }
  44.     }
  45.  
  46.     public static final class Error extends ServerMessage {
  47.         private final String message;
  48.  
  49.         public Error(String message) {
  50.             super(ErrorType.ERROR);
  51.             this.message = message;
  52.         }
  53.  
  54.         public String getMessage() {
  55.             return message;
  56.         }
  57.     }
  58.  
  59.     public static final class EmptySuccess extends ServerMessage {
  60.  
  61.         EmptySuccess() {
  62.             super(ErrorType.SUCCESS);
  63.         }
  64.     }
  65.  
  66.     public static final class ListMembers extends ServerMessage {
  67.         private final List<User> userList;
  68.  
  69.         public ListMembers(List<User> userList) {
  70.             super(ErrorType.SUCCESS);
  71.             this.userList = userList;
  72.         }
  73.  
  74.         public List<User> getUserList() {
  75.             return userList;
  76.         }
  77.     }
  78.  
  79.     public static final class ListMessages extends ServerMessage {
  80.         private final List<TextMessage> messages;
  81.  
  82.         public ListMessages(List<TextMessage> messages) {
  83.             super(ErrorType.SUCCESS);
  84.             this.messages = messages;
  85.         }
  86.  
  87.         public List<TextMessage> getMessages() {
  88.             return messages;
  89.         }
  90.     }
  91.  
  92.     public static final class NewMessage extends ServerMessage {
  93.         private final TextMessage message;
  94.  
  95.         public NewMessage(TextMessage message) {
  96.             super(ErrorType.SUCCESS);
  97.             this.message = message;
  98.         }
  99.  
  100.         public TextMessage getMessage() {
  101.             return message;
  102.         }
  103.     }
  104.  
  105. }
  106.  
  107.  
Advertisement
Add Comment
Please, Sign In to add comment