diff --git a/POO_Server/src/main/Main.java b/POO_Server/src/main/Main.java new file mode 100644 index 0000000..06cc0f6 --- /dev/null +++ b/POO_Server/src/main/Main.java @@ -0,0 +1,5 @@ +package main; + +public class Main { + +} diff --git a/POO_Server/src/main/ServletPresence.java b/POO_Server/src/main/ServletPresence.java new file mode 100644 index 0000000..ce78ade --- /dev/null +++ b/POO_Server/src/main/ServletPresence.java @@ -0,0 +1,41 @@ +package main; + +//il faut lier le serveur tomcat, voir avec K ou le prof +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Servlet implementation class ServletPresence + */ +@WebServlet("/ServletPresence") +public class ServletPresence extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * Default constructor. + */ + public ServletPresence() { + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + response.getWriter().append("Served at: ").append(request.getContextPath()); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // TODO Auto-generated method stub + doGet(request, response); + } + +} diff --git a/POO_Server/src/messages/MauvaisTypeMessageException.java b/POO_Server/src/messages/MauvaisTypeMessageException.java new file mode 100644 index 0000000..c7f9644 --- /dev/null +++ b/POO_Server/src/messages/MauvaisTypeMessageException.java @@ -0,0 +1,8 @@ +package messages; + +public class MauvaisTypeMessageException extends Exception { + + private static final long serialVersionUID = 1L; + + +} diff --git a/POO_Server/src/messages/Message.java b/POO_Server/src/messages/Message.java new file mode 100644 index 0000000..4afae87 --- /dev/null +++ b/POO_Server/src/messages/Message.java @@ -0,0 +1,69 @@ +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]); + + 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"); + 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())); + + } + +} diff --git a/POO_Server/src/messages/MessageFichier.java b/POO_Server/src/messages/MessageFichier.java new file mode 100644 index 0000000..aa8f0bf --- /dev/null +++ b/POO_Server/src/messages/MessageFichier.java @@ -0,0 +1,33 @@ +package messages; + +import messages.Message.TypeMessage; + +public class MessageFichier extends Message { + + + private static final long serialVersionUID = 1L; + private String contenu; + private String extension; + + public MessageFichier(TypeMessage type, String contenu, String extension) throws MauvaisTypeMessageException{ + if ((type==TypeMessage.IMAGE)||(type==TypeMessage.FICHIER)) { + this.type=type; + this.contenu=contenu; + this.extension=extension; + } + else throw new MauvaisTypeMessageException(); + } + + public String getContenu() { + return this.contenu; + } + + public String getExtension() { + return this.extension; + } + + @Override + protected String attributsToString() { + return this.contenu+"###"+this.extension; + } +} \ No newline at end of file diff --git a/POO_Server/src/messages/MessageSysteme.java b/POO_Server/src/messages/MessageSysteme.java new file mode 100644 index 0000000..dcda974 --- /dev/null +++ b/POO_Server/src/messages/MessageSysteme.java @@ -0,0 +1,39 @@ +package messages; + +public class MessageSysteme extends Message { + + private static final long serialVersionUID = 1L; + private String pseudo; + private String id; + + public MessageSysteme(TypeMessage type) throws MauvaisTypeMessageException{ + if ((type==TypeMessage.JE_SUIS_CONNECTE)||(type==TypeMessage.JE_SUIS_DECONNECTE)||(type==TypeMessage.MESSAGE_NUL)) { + this.type=type; + this.pseudo=""; + this.id=""; + } + else throw new MauvaisTypeMessageException(); + } + + public MessageSysteme(TypeMessage type, String pseudo, String id) throws MauvaisTypeMessageException { + if (type==TypeMessage.INFO_PSEUDO) { + this.type=type; + this.pseudo=pseudo; + this.id=id; + } + else throw new MauvaisTypeMessageException(); + } + + public String getPseudo() { + return this.pseudo; + } + + public String getId() { + return this.id; + } + + @Override + protected String attributsToString() { + return this.pseudo+"###"+this.id; + } +} diff --git a/POO_Server/src/messages/MessageTexte.java b/POO_Server/src/messages/MessageTexte.java new file mode 100644 index 0000000..e5d354d --- /dev/null +++ b/POO_Server/src/messages/MessageTexte.java @@ -0,0 +1,27 @@ +package messages; + +import messages.Message.TypeMessage; + +public class MessageTexte extends Message { + + + private static final long serialVersionUID = 1L; + private String contenu; + + public MessageTexte(TypeMessage type, String contenu) throws MauvaisTypeMessageException{ + if (type==TypeMessage.TEXTE) { + this.type=type; + this.contenu=contenu; + } + else throw new MauvaisTypeMessageException(); + } + + public String getContenu() { + return this.contenu; + } + + @Override + protected String attributsToString() { + return this.contenu; + } +} \ No newline at end of file