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.destinataire = destinataire ; this.source = source ; this.Message = Message ; this.dateHorodatage = new Date(); this.type = type; } public void setDate(Date d) { this.dateHorodatage=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.destinataire + "\n") ; Msg += ("Source:" + this.source+ "\n") ; Msg += ("Type:"+ this.type+ "\n"); Msg += ("Date:" + this.dateToString() + "\n") ; Msg += ("Message:" + this.Message + "\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.dateHorodatage); } /** *

* 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 (ParseException e) { e.printStackTrace(); } String payload = ""; for(int i=4; i< mots.length; i++) { payload += mots[i]+"\n"; } MessageHorodate mh = new MessageHorodate(destinataire, source, payload, type); mh.setDate(date); return mh ; } }