package model;
import java.io.File;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import tools.UniformementRepresentable;
//@InInterceptors(interceptors = {"interceptor.ClientRequestInterceptor"})
public class ServiceImpl implements Service {
private ArrayList<PersonneImpl> listePersonneImpl=new ArrayList<>();
private ArrayList<Personne> listePersonne = new ArrayList<>();
public List<PersonneImpl> getPersonnesMemoire(){
return listePersonneImpl;
}
public List<Personne> getPersonnesIntMemoire(){
return listePersonne;
}
///////////////////////////////// POST
@Override
public String opWithoutFields(PersonneWithoutFields p) {
try {
System.out.println("Objet reçu: "+UniformementRepresentable.toString(new StringBuilder(), p));
listePersonneImpl.add(p);
} catch (Exception e) {
e.printStackTrace();
}
return UniformementRepresentable.toString(new StringBuilder(), p);
}
@Override
public String postPersonne(PersonneImpl p) {
try {
System.out.println("Objet reçu: "+UniformementRepresentable.toString(new StringBuilder(), p));
listePersonneImpl.add(p);
} catch (Exception e) {
e.printStackTrace();
}
return UniformementRepresentable.toString(new StringBuilder(), p);
}
@Override
public String postPersonneInt(Personne p) {
PrintWriter writer;
try {
System.out.println("Objet reçu: "+UniformementRepresentable.toString(new StringBuilder(), p));
listePersonne.add(p);
} catch (Exception e) {
e.printStackTrace();
}
return UniformementRepresentable.toString(new StringBuilder(), p);
}
//////////////////////////////////////// GET
@Override
public TeacherImpl getPersonne() {
TeacherImpl etudiant = new TeacherImpl();
etudiant.setNom("Bon");
etudiant.setPrenom("Jean");
etudiant.setPromo("gsi");
return etudiant;
}
@Override
public Teacher getPersonneInt() {
Teacher etudiant = new TeacherImpl();
etudiant.setNom("Bon");
etudiant.setPrenom("Jean");
etudiant.setPromo("gsi");
return etudiant;
}
///////////////////////////// GET LIST
@Override
public List<TeacherImpl> getPersonnes() {
TeacherImpl etudiant = new TeacherImpl();
etudiant.setNom("Bon");
etudiant.setPrenom("Jean");
etudiant.setPromo("gsi");
TeacherImpl etudiant1 = new TeacherImpl();
etudiant1.setNom("Bon1");
etudiant1.setPrenom("Jean1");
etudiant1.setPromo("gsi1");
ArrayList<TeacherImpl> listeEtudiant = new ArrayList<>();
listeEtudiant.add(etudiant);
listeEtudiant.add(etudiant1);
return listeEtudiant;
}
@Override
public List<Teacher> getPersonnesInt() {
Teacher etudiant = new TeacherImpl();
etudiant.setNom("Bon");
etudiant.setPrenom("Jean");
etudiant.setPromo("gsi");
Teacher etudiant1 = new TeacherImpl();
etudiant1.setNom("Bon1");
etudiant1.setPrenom("Jean1");
etudiant1.setPromo("gsi1");
ArrayList<Teacher> listeEtudiant = new ArrayList<>();
listeEtudiant.add(etudiant);
listeEtudiant.add(etudiant1);
return listeEtudiant;
}
////////////////////// POST LIST
@Override
public String postPersonnes(List<PersonneImpl> liste) {
listePersonneImpl.addAll(liste);
return "Ok";
}
@Override
public String postPersonnesInt(List<Personne> liste) {
listePersonne.addAll(liste);
return "ok";
}
/*
@Override
public List<PersonneImpl> op(PersonneImpl p1, PersonneImpl p2) {
listePersonneImpl.add(p2);
listePersonneImpl.add(p1);
return listePersonneImpl;
}
@Override
public String getPersonne(int id) {
int i=trouverPersonne(listePersonneImpl,id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
return ""+UniformementRepresentable.toString(new StringBuilder(), listePersonneImpl.get(i));
}
@Override
public String listePersonne() {
int size=listePersonneImpl.size();
if(size>0){
String s="DEBUT LISTE:";
for(int i=0;i<size;i++){
s+="\n"+UniformementRepresentable.toString(new StringBuilder(), listePersonneImpl.get(i));
}
s+="\nEND LIST";
return s;
}
else{
return "liste vide";
}
}
@Override
public String modificationNomPersonne(int id, String nom) {
int i=trouverPersonne(listePersonneImpl,id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
listePersonneImpl.get(i).setNom(nom);
return "modification effectué";
}
@Override
public String modificationPrenomPersonne(int id, String prenom) {
int i=trouverPersonne(listePersonneImpl,id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
listePersonneImpl.get(i).setPrenom(prenom);
return "modification effectué";
}
@Override
public String ajouterPersonne(PersonneImpl p) {
int i=trouverPersonne(listePersonneImpl,p.getId());
if(i!=-1){
return "Une personne possède déjà cet identifiant:"+p.getId();
}
listePersonneImpl.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(listePersonneImpl,id);
if(i==-1){
return "aucune personne ne possède cet identifiant:"+id;
}
listePersonneImpl.remove(i);
return "La personne avec l'id:"+id+" a été supprimé";
}
@Override
public List<Personne> opInt(Personne p1, Personne p2) {
listePersonne.add(p2);
listePersonne.add(p1);
return listePersonne;
}
@Override
public String ajouterPersonneInt(Personne p) {
int i=trouverPersonne(listePersonne,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);
}
*/
private <E extends Personne> int trouverPersonne (List<E> liste,int id){
int size=liste.size();
if(size==0) return -1;
int i=0;
boolean a=true;
do{
if(liste.get(i).getId()==id){
a=false;
}
else{
i++;
}
}
while(a && i<size);
if(i>=size){
return -1;
}
return i;
}
}