Question 2
Question
Gérer dans la fonction addSejour, l'ajout d'un nouveau patient.
Solution
1
public static void addSejour(String idPersonne, String dDebut, String dFin, String content){
2
String expression = "/hopital/pensionnaires/patient[@personneId=" + idPersonne + "]";
3
Element sejour = hopital.createElement("sejour");
4
5
Attr ddebut = hopital.createAttribute("ddebut");
6
ddebut.setValue(dDebut);
7
8
Attr dfin = hopital.createAttribute("dfin");
9
dfin.setValue(dFin);
10
11
sejour.setAttributeNode(ddebut);
12
sejour.setAttributeNode(dfin);
13
sejour.setTextContent(content);
14
try {
15
Element patient = (Element) xPath.compile(expression).evaluate(hopital, XPathConstants.NODE);
16
if(patient == null){
17
System.out.println("Le patient " + idPersonne + " n'existe pas encore\n");
18
19
Element newPatient = hopital.createElement("patient");
20
Attr personneId = hopital.createAttribute("personneId");
21
personneId.setValue(idPersonne);
22
newPatient.setAttributeNode(personneId);
23
24
Element newInternements = hopital.createElement("internements");
25
newInternements.appendChild(sejour);
26
newPatient.appendChild(newInternements);
27
28
Element pensionnaires = (Element) xPath.compile("/hopital/pensionnaires").evaluate(hopital, XPathConstants.NODE);
29
pensionnaires.appendChild(newPatient);
30
} else {
31
System.out.println("Le patient " + idPersonne + " existe deja\n");
32
33
patient.getElementsByTagName("internements").item(0).appendChild(sejour);
34
}
35
} catch (XPathExpressionException e) {
36
System.out.println("XPathExprressionException : " + e.getMessage());
37
e.printStackTrace();
38
}