142 lines
3.4 KiB
Java
142 lines
3.4 KiB
Java
package src.Controller;
|
|
|
|
import java.text.DateFormat;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
|
|
/**
|
|
* <p>
|
|
* Classe representant les messages envoyés en TCP lors d'une session de clavardage
|
|
* </p>
|
|
*/
|
|
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;
|
|
|
|
/**
|
|
* <p>
|
|
* Constructeur , le message va etre horodate
|
|
* @param destinataire - Destinataire du message
|
|
* @param source - Source du message
|
|
* @param Message - Message envoye
|
|
* </p>
|
|
*/
|
|
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);
|
|
}
|
|
|
|
/**
|
|
* <p>
|
|
* permet de creer une representation string du message
|
|
* @return Les differents attributs de la classe sous forme de string
|
|
* </p>
|
|
*/
|
|
@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 ;
|
|
}
|
|
|
|
/**
|
|
* <p>
|
|
* 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
|
|
* </p>
|
|
*/
|
|
public String dateToString() {
|
|
DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
return format.format(this.getDateHorodatage());
|
|
}
|
|
|
|
|
|
/**
|
|
* <p>
|
|
* Permet de re creer un message horodate a partir d'un string
|
|
* @return un messageHorodate
|
|
* </p>
|
|
*/
|
|
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;
|
|
}
|
|
|
|
}
|