package model;
import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.adapters.*;
import utile.UniformementRepresentable;
//@InInterceptors(interceptors = {"interceptor.ClientRequestInterceptor"})
public class ServiceImpl implements Service {
private ArrayList<Personne> listePersonne=new ArrayList<Personne>();
@Override
@POST
@Path("/op")
@Produces(MediaType.APPLICATION_XML)
public String op(Personne p) {
PrintWriter writer;
try {
//path correspond au répertoire d'installation de tomcat
String path = getClass().getClassLoader().getResource(".").getPath()+"FAKEDocuments/FAKEdatabase.txt";
File f = new File(path);
if(!f.exists()) {
f.getParentFile().mkdirs();
}
writer = new PrintWriter(path, "UTF-8");
writer.append("Incoming request for: ");
writer.append(UniformementRepresentable.toString(new StringBuilder(), p));
writer.close();
System.out.println("Objet reçu: "+UniformementRepresentable.toString(new StringBuilder(), p));
System.out.println("Chemin vers la base de donnée: ");
System.out.println(path);
} catch (Exception e) {
e.printStackTrace();
}
return p.getNom();
}
@Override
public Etudiant op() {
Etudiant etudiant = new EtudiantImpl();
etudiant.setNom("Bon");
etudiant.setPrenom("Jean");
etudiant.setPromo("gsi");
return etudiant;
}
@Override
public String getPersonne(int id) {
int i=trouverPersonne(id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
return ""+UniformementRepresentable.toString(new StringBuilder(), listePersonne.get(i));
}
@Override
public String listePersonne() {
int size=listePersonne.size();
if(size>0){
String s="DEBUT LISTE:";
for(int i=0;i<size;i++){
s+="\n"+UniformementRepresentable.toString(new StringBuilder(), listePersonne.get(i));
}
s+="\nEND LIST";
return s;
}
else{
return "liste vide";
}
}
@Override
public String modificationNomPersonne(int id, String nom) {
int i=trouverPersonne(id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
listePersonne.get(i).setNom(nom);
return "modification effectué";
}
@Override
public String modificationPrenomPersonne(int id, String prenom) {
int i=trouverPersonne(id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
listePersonne.get(i).setPrenom(prenom);
return "modification effectué";
}
@Override
public String ajouterPersonne(Personne p) {
int i=trouverPersonne(p.getId());
if(i!=-1){
return "Une personne possède déjà cet identifiant:"+p.getId();
}
listePersonne.add(p);
return "La personne suivante à été ajouté à la liste: \n"+UniformementRepresentable.toString(new StringBuilder(), p);
}
@Override
public String effacerPersonne(int id) {
int i=trouverPersonne(id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
listePersonne.remove(i);
return "La personne avec l'id:"+id+" a été supprimé";
}
private int trouverPersonne(int id){
int size=listePersonne.size();
if(size==0) return -1;
int i=0;
boolean a=true;
do{
if(listePersonne.get(i).getId()==id){
a=false;
}
else{
i++;
}
}
while(a && i<size);
if(i>=size){
return -1;
}
return i;
}
}