69 lines
2.2 KiB
Java
69 lines
2.2 KiB
Java
package messages;
|
|
|
|
import java.io.Serializable;
|
|
import java.lang.instrument.Instrumentation;
|
|
import java.util.Arrays;
|
|
|
|
import messages.Message.TypeMessage;
|
|
|
|
public abstract class Message implements Serializable {
|
|
|
|
public enum TypeMessage {JE_SUIS_CONNECTE, JE_SUIS_DECONNECTE, INFO_PSEUDO, TEXTE, IMAGE, FICHIER, MESSAGE_NUL}
|
|
protected TypeMessage type;
|
|
private static final long serialVersionUID = 1L;
|
|
private static Instrumentation inst;
|
|
|
|
public TypeMessage getTypeMessage() {
|
|
return this.type;
|
|
}
|
|
|
|
protected abstract String attributsToString();
|
|
|
|
public String toString() {
|
|
return this.type+"###"+this.attributsToString();
|
|
}
|
|
|
|
public static Message stringToMessage(String messageString) {
|
|
try {
|
|
String[] parts = messageString.split("###");
|
|
switch (parts[0]) {
|
|
case "JE_SUIS_CONNECTE" :
|
|
return new MessageSysteme(TypeMessage.JE_SUIS_CONNECTE);
|
|
|
|
case "JE_SUIS_DECONNECTE" :
|
|
return new MessageSysteme(TypeMessage.JE_SUIS_DECONNECTE);
|
|
|
|
case "INFO_PSEUDO" :
|
|
return new MessageSysteme(TypeMessage.INFO_PSEUDO, parts[1], parts[2], Integer.parseInt(parts[3]) );
|
|
|
|
case "TEXTE" :
|
|
return new MessageTexte(TypeMessage.TEXTE, parts[1]);
|
|
|
|
case "IMAGE" :
|
|
return new MessageFichier(TypeMessage.IMAGE, parts[1], parts[2]);
|
|
|
|
case "FICHIER" :
|
|
return new MessageFichier(TypeMessage.FICHIER, parts[1], parts[2]);
|
|
}
|
|
} catch (MauvaisTypeMessageException e) {}
|
|
return null;
|
|
}
|
|
|
|
//tests ici
|
|
public static void main(String[] args) throws MauvaisTypeMessageException {
|
|
Message m1 = new MessageSysteme(TypeMessage.JE_SUIS_CONNECTE);
|
|
Message m2 = new MessageSysteme(TypeMessage.JE_SUIS_DECONNECTE);
|
|
Message m3 = new MessageSysteme(TypeMessage.INFO_PSEUDO, "pseudo156434518", "id236", 1500);
|
|
Message m4 = new MessageTexte(TypeMessage.TEXTE, "blablabla");
|
|
Message m5 = new MessageFichier(TypeMessage.FICHIER, "truc", ".pdf");
|
|
|
|
|
|
System.out.println(Message.stringToMessage(m1.toString()));
|
|
System.out.println(Message.stringToMessage(m2.toString()));
|
|
System.out.println(Message.stringToMessage(m3.toString()));
|
|
System.out.println(Message.stringToMessage(m4.toString()));
|
|
System.out.println(Message.stringToMessage(m5.toString()));
|
|
|
|
}
|
|
|
|
}
|