package src.Controller; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** *
* Classe representant les messages envoyés en TCP lors d'une session de clavardage *
*/ public class MessageHorodate { private Utilisateur destinataire ; private Utilisateur source ; private Date dateHorodatage ; private int type; // 0 = debut de la communication, 1= message de communication, 2 = fin de la communicataion private String Message; /** ** Constructeur , le message va etre horodate * @param destinataire - Destinataire du message * @param source - Source du message * @param Message - Message envoye *
*/ public MessageHorodate(Utilisateur destinataire, Utilisateur source, String Message, int type) { this.setDestinataire(destinataire) ; this.setSource(source) ; this.setMessage(Message) ; this.setDateHorodatage(new Date()); this.type = type; } public void setDate(Date d) { this.setDateHorodatage(d); } /** ** permet de creer une representation string du message * @return Les differents attributs de la classe sous forme de string *
*/ @Override public String toString() { String Msg = ""; Msg += ("Destinataire::" + this.getDestinataire() + "\n") ; Msg += ("Source::" + this.getSource()+ "\n") ; Msg += ("Type::"+ this.type+ "\n"); Msg += ("Date::" + this.dateToString() + "\n") ; Msg += ("Message::" + this.getMessage() + "\n" ); return Msg ; } /** ** permet de creer une representation string de la date d'horodatage * @return La date d'horodatage du message en format yyyy/MM/dd HH:mm:ss *
*/ public String dateToString() { DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); return format.format(this.getDateHorodatage()); } /** ** Permet de re creer un message horodate a partir d'un string * @return un messageHorodate *
*/ public static MessageHorodate stringToMessageHorodate(String s) { String mots[] = s.split("\n"); Utilisateur destinataire = Utilisateur.stringToUtilisateur(mots[0].split("::")[1]); Utilisateur source = Utilisateur.stringToUtilisateur(mots[1].split("::")[1]); int type = Integer.parseInt(mots[2].split("::")[1]); DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = new Date(); /*try { date = format.parse(mots[3].split("::")[1]); } catch (Exception e) { e.printStackTrace(); }*/ String payload = ""; for(int i=4; i< mots.length; i++) { if(mots[i].startsWith("Message::")) { mots[i]=mots[i].split("::")[1]; } payload += mots[i]+"\n"; } MessageHorodate mh = new MessageHorodate(destinataire, source, payload, type); //mh.setDate(date); return mh ; } public Utilisateur getSource() { return source; } public void setSource(Utilisateur source) { this.source = source; } public Utilisateur getDestinataire() { return destinataire; } public void setDestinataire(Utilisateur destinataire) { this.destinataire = destinataire; } public String getMessage() { return Message; } public void setMessage(String message) { Message = message; } public int getType() { return type; } public void setType(int Type) { this.type = type; } public Date getDateHorodatage() { return dateHorodatage; } public void setDateHorodatage(Date dateHorodatage) { this.dateHorodatage = dateHorodatage; } }