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()));
 | |
| 		
 | |
| 	}
 | |
| 
 | |
| }
 |