Optimisation du code.

This commit is contained in:
pablo rodriguez 2022-05-07 20:43:07 +02:00
parent 86aca27ef3
commit 13d7f4c70f
13 changed files with 449 additions and 425 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -237,9 +237,10 @@ public class HTML {
if(nod.getNodes().get(k).getAttributs().get("niveau")!=null) {
String Tst = nod.getNodes().get(k).getAttributs().get("resultat");
// String Key = outils.Traduction(nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut")));
String Key = outils.traduction.get(nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut")));
if(Key==null) Key = nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut"));
if(Key==null) Key = nod.getNodes().get(k).getAttributs().get("elt") + " " + outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("attribut"));
String valueStudent = nod.getNodes().get(k).getAttributs().get("valueStudent");
String valueSujet = outils.withoutCodeAndPoint(nod.getNodes().get(k).getAttributs().get("valueSujet"));
@ -275,6 +276,7 @@ public class HTML {
code = code + HTML.Table(Tst, Key2, valueStudent, valueSujet, niveau);
}else {
if(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre")!=null) code = code + HTML.SautLigneOnduleBleu(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre"));
if(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre1")!=null) code = code + HTML.SautLigneOnduleBleu(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre1"));
if(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre2")!=null) code = code + HTML.SautP8(nod.getNodes().get(k).getNodes().get(l).getAttributs().get("titre2"));
}

View File

@ -3,7 +3,7 @@ package MEPTL;
import cXML.node;
import cXML.Run;
public class analyseLesNodesEnants {
public class analyseLesNodesEnfants {
/**
* Cette méthode récursive permet d'analyser et d'évaluer les nodes enfants.</br>
@ -66,9 +66,9 @@ public class analyseLesNodesEnants {
}
}
//**********************************************
//** Analyse les nodes enfants du node enfant **
//**********************************************
//************************************************************
//** Analyse les nodes enfants du node enfant - Récursivité **
//************************************************************
if(nodEnfantSujet!=null) {
PourAnalyse = nodeNext(PourAnalyse, nomDuNodePourAnalyse, nodStudentCorrespondantAuNodSujet, nod2Student, nod1Student, nodEnfantSujet, nodSujetParagraphs, nodStudentParagraphes, a);
}
@ -80,13 +80,13 @@ public class analyseLesNodesEnants {
/**
* Permet d'analyser les styles depuis l'attribut analyseStyle.</br>
* Permet d'analyser les styles depuis l'attribut <b>analyseStyle</b>.</br>
* @param PourAnalyse : node pour le node analyse
* @param : Le nom du node de l'analyse pour cette partie (exemple ana:page)
* @param nodSujet
* @param nodStudent
* @param nodSujetParagraphs
* @param nodStudentParagraphs
* @param : Le nom du node de l'analyse pour cette partie de l'analyse(exemple ana:page)
* @param nodSujet : le node du sujet (consignes).
* @param nodStudent : le node de l'étudiant.
* @param nodSujetParagraphs : le node contenant l'ensemble des styles du sujet.
* @param nodStudentParagraphs : le node contenant l'ensemble des style de l'étudiant.
* @return
*/
public static node analyseStyle(node PourAnalyse, String nomDuNodePourAnalyse, node nodSujet, node nodStudent, node nodSujetParagraphs, node nodStudentParagraphs ) {

View File

@ -603,12 +603,28 @@ public class commandes {
System.out.println("\t\t┌────────────────────────────────────────────────────┐");
System.out.println("\t\t│ (')_(') │");
System.out.println("\t\t│ ( `.° ) Bravo, vous avez travaillé très dur! │");
System.out.println("\t\t│ (\")__(\") .. Bye Bye analyseWriter. ");
System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
System.out.println("\t\t└────────────────────────────────────────────────────┘");
System.out.println();
System.exit(0);
}
/**
*
*/
public static void clotureApplicationAvecErreur() {
System.out.println();
System.out.println("\t\t┌────────────────────────────────────────────────────┐");
System.out.println("\t\t│ (')_(') │");
System.out.println("\t\t│ ( ;.; ) Une erreur c'est produite. │");
System.out.println("\t\t│ (\")__(\") ... Bye Bye analyseWriter. │");
System.out.println("\t\t└────────────────────────────────────────────────────┘");
System.out.println();
System.exit(0);
}
public static void clotureWithHelp() {
System.out.println();
System.out.println("\t\t┌─────────────────────────────────────────────────────┐");

View File

@ -300,7 +300,7 @@ public class ecritureSujet {
if(no.get(k)!=null) {
no.get(k).getAttributs().put("evaluer", "false");
if(listeDesNodesAvecEvalNode(no.get(k).getNomElt())) no.get(k).getAttributs().put("evalNameNode", "0");
if(listeDesNodesSautEtTitre(no.get(k).getNomElt())) {no.get(k).getAttributs().put("saut", "false"); no.get(k).getAttributs().put("titre", ""); no.get(k).getAttributs().put("styletitre", "nostyle");}
if(listeDesNodesSautEtTitre(no.get(k).getNomElt())) {no.get(k).getAttributs().put("saut", "false"); no.get(k).getAttributs().put("titre", "");}
if(listeDesNodesRechercheIndex(no.get(k).getNomElt())) {no.get(k).getAttributs().put("recherche_index", "false"); no.get(k).getAttributs().put("recherche_contenu_exact", "false");}
if(listeDesNodesAnalyseStyle(no.get(k).getNomElt())) no.get(k).getAttributs().put("analyseStyle", "false");
if(listeDesNodesAllContent(no.get(k).getNomElt())) no.get(k).getAttributs().put("allContent", "strict0");
@ -354,6 +354,7 @@ public class ecritureSujet {
* @return
*/
private static boolean listeDesNodesAnalyseStyle(String nameNode) {
if(nameNode.contains("text:database-display")) return false;
if(nameNode.contains("text:")) return true;
return false;
}

View File

@ -142,9 +142,18 @@ public class meptl {
if(commandes.analyse) {
nodeSujet = chargementsujet(commandes.nameSujet, true);
//** Chargement de la culture **
commandes.culture = nodeSujet.retourneFirstEnfantsByName("setting").getAttributs().get("culture"); //récupère la culture de l'utilisateur
if(nodeSujet==null) {
//***************************
//** bye bye analyseWriter **
//***************************
commandes.clotureApplicationAvecErreur();
}
//** Chargement de la culture **
if(nodeSujet.retourneFirstEnfantsByName("setting").isHasAttributs()) {
commandes.culture = nodeSujet.retourneFirstEnfantsByName("setting").getAttributs().get("culture"); //récupère la culture de l'utilisateur
}
//** La méthode verificationFichier Analyse permet de détecter des erreurs dans le fichier d'analyse
new verificationFichierAnalyse(nodeSujet);
@ -318,32 +327,33 @@ public class meptl {
}
}
//*****************************************************
//** Exportation au format CSV si -csv ou -verifcsv **
//*****************************************************
if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
if(!commandes.verifHisto2) ecritureCSV(ensembleanalyse);
if(commandes.verifHisto2) ecritureCSV(ensembleanalyse,verif,a,nodeSujet.retourneFirstEnfantsByName("setting"));
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
if(nodeSujet!=null) {
//*****************************************************
//** Exportation au format CSV si -csv ou -verifcsv **
//*****************************************************
if(commandes.ecritNoteCSV && !commandes.fourniCSV) {
if(!commandes.verifHisto2) ecritureCSV(ensembleanalyse);
if(commandes.verifHisto2) ecritureCSV(ensembleanalyse,verif,a,nodeSujet.retourneFirstEnfantsByName("setting"));
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
}
//***********************************************************************
//** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
//***********************************************************************
if(commandes.ecritNoteCSV && commandes.fourniCSV) {
ecritureCSV(ensembleanalyse,verif,a,nodeCSV, nodeSujet.retourneFirstEnfantsByName("setting"));
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
}
//**************************************
//** Mise à jour du fichier d'analyse **
//**************************************
if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
verificationFichierAnalyse.MiseAJourFichierAnalyse();
verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
}
}
//***********************************************************************
//** Exportation au format CSV si -csv file.csv ou -verifcsv file.csv **
//***********************************************************************
if(commandes.ecritNoteCSV && commandes.fourniCSV) {
ecritureCSV(ensembleanalyse,verif,a,nodeCSV, nodeSujet.retourneFirstEnfantsByName("setting"));
//a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant
}
//**************************************
//** Mise à jour du fichier d'analyse **
//**************************************
if(commandes.MAJFichierAnalyse||commandes.MAJnameAnalysisFile) {
verificationFichierAnalyse.MiseAJourFichierAnalyse();
verificationFichierAnalyse.messagMiseAJourFichierAnalyseAprèsAnalyse();
}
//***************************
//** bye bye analyseWriter **
//***************************
@ -1049,10 +1059,10 @@ public class meptl {
nodouverture.setAttributs(nodSujet.getAttributs());
nodouverture.getAttributs().put("dossier",a.getLectDossiers().getEC().getListeNomDossier().get(indexStudent));
nodouverture.getAttributs().put("filename", a.getLectDossiers().getEC().getListeFichierodt().get(indexStudent));
nodouverture.getAttributs().put("filenameAnalyse", nodSujet.getAttributs().get("filename"));
nodouverture.getAttributs().put("producteur", nodStudent.getAttributs().get("producteur"));
nodouverture.getAttributs().put("dureeEdition", nodStudent.getAttributs().get("dureeEdition"));
nodouverture.getAttributs().put("dateModification", nodStudent.getAttributs().get("dateModification"));
if(nodSujet.getAttributs().get("analysis_filename")!=null) nodouverture.getAttributs().put("filenameAnalyse", nodSujet.getAttributs().get("analysis_filename"));
if(nodStudent.getAttributs().get("producteur")!=null) nodouverture.getAttributs().put("producteur", nodStudent.getAttributs().get("producteur"));
if(nodStudent.getAttributs().get("dureeEdition")!=null) nodouverture.getAttributs().put("dureeEdition", nodStudent.getAttributs().get("dureeEdition"));
if(nodStudent.getAttributs().get("dateModification")!=null) nodouverture.getAttributs().put("dateModification", nodStudent.getAttributs().get("dateModification"));
nodouverture.getAttributs().put("patch", a.getPatch());
if(nodSujet.getAttributs().get("historiquePresent")!=null) nodouverture.getAttributs().put("historiquePresent", nodSujet.getAttributs().get("historiquePresent"));
if(nodSujet.getAttributs().get("controleDateCreation")!=null) nodouverture.getAttributs().put("controleDateCreation", nodSujet.getAttributs().get("controleDateCreation"));
@ -1200,17 +1210,6 @@ public class meptl {
manqueValeurMetaSujet=true;
}
}
}else {
}
}else {
b = a.retourneFirstNodeByNameAttributValue(nodStudent, "meta:user-defined", "meta:name", "Sujet");
if(b==null) {
manqueMetaSujet=true;
}else {
if(!nodSujet.getAttributs().get("metaSujet").equals(b.getContenu().get(0))) {
manqueValeurMetaSujet=true;
}
}
}
@ -1631,7 +1630,7 @@ public class meptl {
//**********************************************
//** Analyse de tous les autres nodes enfants **
//**********************************************
page=analyseLesNodesEnants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphes, nodStudentParagraphes, a);
page=analyseLesNodesEnfants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphes, nodStudentParagraphes, a);
page.getAttributs().put("point", String.valueOf(outils.getPointsClass()-pointDebut));
page.getAttributs().put("pointTotal", String.valueOf(outils.getPointTotal()-pointTotalDebut));
@ -1817,7 +1816,7 @@ public class meptl {
}
/**
* Analyse du node <b>numerotationchapitre</b>.
* Analyse du node <b>numerotationchapitre</b>.</br>
* @param nodStudentNumerotation
* @param nodSujetNumerotation
* @param a
@ -1830,13 +1829,21 @@ public class meptl {
nodnumerotations.setAttributs(nodSujetNumerotation.getAttributs());//ajoute tous les attributs du sujet
nodnumerotations.setContenu(nodSujetNumerotation.getContenu()); //ajoute le commantaire du sujet
//ajoute l'identifiant pour le menu
//***************************************
//** Ajoute l'identifiant pour le menu **
//***************************************
if(a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "numerotationchapitre")!=null) {
nodnumerotations.getAttributs().put("id", a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "numerotationchapitre").getAttributs().get("id"));
}
//initialise les points
//***************************
//** initialise les points **
//***************************
outils.initiliseLesPoints();
//*******************************************************************
//** Parcours les nodes enfants du node <text:outline-level-style> **
//*******************************************************************
for(int i = 0 ; i < nodSujetNumerotation.getNodes().size(); i++) {
if(nodSujetNumerotation.getNodes().get(i).getNomElt().equals("text:outline-level-style")) {
int pointDebut = outils.getPointsClass();
@ -1850,68 +1857,29 @@ public class meptl {
node numerotationStudent = a.retourneFirstNodeByNameAttributValue(nodStudentNumerotation, "text:outline-level-style", "text:level", levelnumrotation);
node numerotationSujet = nodSujetNumerotation.getNodes().get(i);
// analyse les attributs du node
//********************************************
//** analyse les attributs des nodes <page> **
//********************************************
numerotation = analyseLesAttributEtContenuDuNode(numerotationStudent, numerotationSujet, numerotation, "ana:numerotation",numerotationSujet.getNomElt());
// les enfants du premier niveau du node
for(int j = 0 ; j < numerotationSujet.getNodes().size();j++ ) {
node nodSujet = numerotationSujet.getNodes().get(j);
String nameNode = nodSujet.getNomElt();
node nodStudent = null;
if(numerotationStudent!=null) if(numerotationStudent.retourneFirstEnfantsByName(nameNode).getNomElt().equals(nameNode)) {
nodStudent = numerotationStudent.retourneFirstEnfantsByName(nameNode);
}
//insère un saut si titre pas vide et saut=true
numerotation=addNodeSautTitre(nodSujet, numerotation);
//************************************
//** analyse tous les nodes enfants **
//************************************
numerotation = analyseLesNodesEnfants.nodeNext(numerotation, "ana:numerotation", numerotationStudent, null, null, numerotationSujet, null, null, a);
// analyse attribut et contenu des enfants du premier niveau
numerotation = analyseLesAttributEtContenuDuNode(nodStudent, nodSujet, numerotation, "ana:numerotation",numerotationSujet.getNodes().get(j).getNomElt());
for(int k = 0 ; k < nodSujet.getNodes().size();k++) {
node nod2Sujet = nodSujet.getNodes().get(k);
String nameNode2 = nod2Sujet.getNomElt();
node nod2Student = null;
if(nodStudent!=null) if(nodStudent.retourneFirstEnfantsByName(nameNode2).getNomElt().equals(nameNode2)) {
nod2Student = numerotationStudent.retourneFirstEnfantsByName(nameNode2);
}
//insère un saut si titre pas vide et saut=true
numerotation=addNodeSautTitre(nod2Sujet, numerotation);
// analyse attribut et contenu des enfants du second niveau
numerotation = analyseLesAttributEtContenuDuNode(nod2Student, nod2Sujet, numerotation, "ana:numerotation",nod2Sujet.getNomElt() );
for(int l = 0 ; l < nod2Sujet.getNodes().size();l++) {
node nod3Sujet = nod2Sujet.getNodes().get(l);
String nameNode3 = nod3Sujet.getNomElt();
node nod3Student = null;
if(nod2Student!=null) if(nod2Student.retourneFirstEnfantsByName(nameNode3).getNomElt().equals(nameNode3)) {
nod3Student = numerotationStudent.retourneFirstEnfantsByName(nameNode3);
}
//insère un saut si titre pas vide et saut=true
numerotation=addNodeSautTitre(nod3Sujet, numerotation);
// analyse attribut et contenu des enfants du troisième niveau
numerotation = analyseLesAttributEtContenuDuNode(nod3Student, nod3Sujet, numerotation, "ana:paragraph", nod3Sujet.getNomElt());
}
}
}
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
//****************************************************************
numerotation.getAttributs().put("point", String.valueOf(outils.getPointsClass()-pointDebut));
numerotation.getAttributs().put("pointTotal", String.valueOf(outils.getPointTotal()-pointTotalDebut));
nodnumerotations.getNodes().add(numerotation);
}
}
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
//****************************************************************
nodnumerotations.getAttributs().put("pointgagner",String.valueOf(outils.getPointsClass()));
nodnumerotations.getAttributs().put("pointtotal",String.valueOf(outils.getPointTotal()));
nodnumerotations.getAttributs().put("proportioncorrect",String.valueOf(outils.getProportionCorrect()));
@ -1934,14 +1902,22 @@ public class meptl {
nodframes.setAttributs(nodSujetFrames.getAttributs()); //ajoute tous les attributs du sujet
nodframes.setContenu(nodSujetFrames.getContenu()); //ajoute le commentaire du sujet
//ajoute l'identifiant pour le menu
//***************************************
//** Ajoute l'identifiant pour le menu **
//***************************************
if(a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "frames")!=null) {
nodframes.getAttributs().put("id", a.retourneFirstNodeByNameAttributValue(nodmenu, "item", "name", "frames").getAttributs().get("id"));
}
//initialise les points
//***************************
//** initialise les points **
//***************************
outils.initiliseLesPoints();
for(int i = 0 ; i < nodSujetFrames.getNodes().size(); i++) { //niveau 1
//*****************************************************
//** Parcours les nodes enfants du node <darw:frame> **
//*****************************************************
for(int i = 0 ; i < nodSujetFrames.getNodes().size(); i++) {
if(nodSujetFrames.getNodes().get(i).getNomElt().equals("draw:frame")) {
int pointDebut = outils.getPointsClass();
int pointTotalDebut = outils.getPointTotal();
@ -1954,103 +1930,28 @@ public class meptl {
node frameStudent = a.retourneFirstNodeByNameAttributValue(nodStudentFrames, "draw:frame", "draw:name", nomDuFrame);
node frameSujet = nodSujetFrames.getNodes().get(i);
// analyse les attributs du node
//********************************************
//** analyse les attributs des nodes <page> **
//********************************************
frame = analyseLesAttributEtContenuDuNode(frameStudent, frameSujet, frame, "ana:frame",frameSujet.getNomElt());
// les enfants du premier niveau du node
for(int j = 0 ; j < frameSujet.getNodes().size();j++ ) { //niveau 2
node nodSujet = frameSujet.getNodes().get(j);
String nameNode = nodSujet.getNomElt();
node nodStudent = null;
if(frameStudent!=null) if(frameStudent.retourneFirstEnfantsByName(nameNode).getNomElt().equals(nameNode)) {
nodStudent = frameStudent.retourneFirstEnfantsByName(nameNode);
}
if(frameStudent!=null) if(nameNode.equals("text:p")) {
if(nodSujet.getAttributs().get("index")!=null) {
nodStudent = a.retourneFirstNodeByNameAttributValue(frameStudent, nameNode, "text:p", frameSujet.getNodes().get(j).getAttributs().get("index"));
}
if(nodStudent==null)if(nodSujet.retourneLesContenusEnfants("").isEmpty()) { //si il n'y a pas de contenu, passe par l'index
nodStudent = a.retourneFirstNodeByNameAttributValue(frameStudent, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
}else {
nodStudent = a.retourneFirstNodeByFindContent2(frameStudent.getNodes(), nodSujet.retourneLesContenusEnfants(""), commandes.tolerance_characters,commandes.tolerance_text);
}
}
//insère un saut si titre pas vide et saut=true
frame=addNodeSautTitre(nodSujet, frame);
// analyse attribut et contenu des enfants du premier niveau
frame = analyseLesAttributEtContenuDuNode(nodStudent, nodSujet, frame, "ana:frame",nodSujet.getNomElt());
for(int k = 0 ; k < nodSujet.getNodes().size();k++) { //niveau 3
node nod2Sujet = nodSujet.getNodes().get(k);
String nameNode2 = nod2Sujet.getNomElt();
node nod2Student = null;
if(nodStudent!=null) if(nodStudent.retourneFirstEnfantsByName(nameNode2).getNomElt().equals(nameNode2)) {
nod2Student = nodStudent.retourneFirstEnfantsByName(nameNode2);
}
if(nodStudent!=null) if(nameNode2.equals("text:p")) {
if(nod2Sujet.getAttributs().get("index")!=null) {
nod2Student = a.retourneFirstNodeByNameAttributValue(nodStudent, nameNode2, "index", nod2Sujet.getAttributs().get("index"));
}
}
if(nodStudent!=null) if(nameNode2.equals("text:database-display")) {
if(nod2Sujet.getAttributs().get("text:column-name")!=null) {
nod2Student = a.retourneFirstNodeByNameAttributValue(nodStudent, nameNode2, "text:column-name", outils.withoutCodeAndPoint(nod2Sujet.getAttributs().get("text:column-name")));
}
}
//insère un saut si titre pas vide et saut=true
frame=addNodeSautTitre(nod2Sujet, frame);
// analyse attribut et contenu des enfants du second niveau
frame = analyseLesAttributEtContenuDuNode(nod2Student, nod2Sujet, frame, "ana:frame",nod2Sujet.getNomElt() );
for(int l = 0 ; l < nod2Sujet.getNodes().size();l++) { //niveau 4
node nod3Sujet = nod2Sujet.getNodes().get(l);
String nameNode3 = nod3Sujet.getNomElt();
node nod3Student = null;
if(nod2Student!=null) if(nod2Student.retourneFirstEnfantsByName(nameNode3).getNomElt().equals(nameNode3)) {
nod3Student = nod2Student.retourneFirstEnfantsByName(nameNode3);
}
if(nod2Student!=null) if(nameNode3.equals("text:database-display")) {
if(nod3Sujet.getAttributs().get("text:column-name")!=null) {
nod3Student = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode3, "text:column-name", outils.withoutCodeAndPoint(nod3Sujet.getAttributs().get("text:column-name")));
}
}
// analyse attribut et contenu des enfants du troisième niveau
if(nod3Student!=null) if(nod3Sujet.getNomElt().equals("text:sequence") && nod3Student.getNomElt().equals("text:sequence")) {
ArrayList<node> changements = nod2Student.retourneEnfantsByName("text:change", new ArrayList<node>());
nod3Student.setNodes(changements);
}
//insère un saut si titre pas vide et saut=true
frame=addNodeSautTitre(nod3Sujet, frame);
// analyse attribut et contenu des enfants du second niveau
frame = analyseLesAttributEtContenuDuNode(nod3Student, nod3Sujet, frame, "ana:frame", nod3Sujet.getNomElt());
}
}
}
//************************************
//** analyse tous les nodes enfants **
//************************************
frame = analyseLesNodesEnfants.nodeNext(frame, "ana:frame", frameStudent, null, null, frameSujet, null, null, a);
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
//****************************************************************
frame.getAttributs().put("point", String.valueOf(outils.getPointsClass()-pointDebut));
frame.getAttributs().put("pointTotal", String.valueOf(outils.getPointTotal()-pointTotalDebut));
nodframes.getNodes().add(frame);
}
}
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
//****************************************************************
nodframes.getAttributs().put("pointgagner",String.valueOf(outils.getPointsClass()));
nodframes.getAttributs().put("pointtotal",String.valueOf(outils.getPointTotal()));
nodframes.getAttributs().put("proportioncorrect",String.valueOf(outils.getProportionCorrect()));
@ -2598,7 +2499,7 @@ public class meptl {
//************************************
//** analyse tous les nodes enfants **
//************************************
page = analyseLesNodesEnants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphs, nodStudentParagraphs, a);
page = analyseLesNodesEnfants.nodeNext(page, "ana:page", pageStudent, null, null, pageSujet, nodSujetParagraphs, nodStudentParagraphs, a);
//****************************************************************
//** Insère les attributs des points dans les node de l'analyse **
@ -2983,29 +2884,32 @@ public class meptl {
* @return
*/
public static node addNodeSautTitre(node nodSujet, node nodanalyse) {
if(nodSujet.getAttributs().get("saut")!=null) if(Boolean.valueOf(nodSujet.getAttributs().get("saut"))) {
if(nodSujet.getAttributs().get("titre")!=null) {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre", nodSujet.getAttributs().get("titre"));
N.setClose(true);
nodanalyse.getNodes().add(N);
}
if(nodSujet.getAttributs().get("titre2")!=null) {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre2", nodSujet.getAttributs().get("titre2"));
N.setClose(true);
nodanalyse.getNodes().add(N);
}
if(nodSujet.getAttributs().get("titre3")!=null) {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre3", nodSujet.getAttributs().get("titre3"));
N.setClose(true);
nodanalyse.getNodes().add(N);
if(nodSujet.getAttributs().get("saut")!=null) {
if(Boolean.valueOf(nodSujet.getAttributs().get("saut"))) {
if(nodSujet.getAttributs().get("titre")!=null) {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre", nodSujet.getAttributs().get("titre"));
N.setClose(true);
nodanalyse.getNodes().add(N);
}
if(nodSujet.getAttributs().get("titre2")!=null) {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre2", nodSujet.getAttributs().get("titre2"));
N.setClose(true);
nodanalyse.getNodes().add(N);
}
if(nodSujet.getAttributs().get("titre3")!=null) {
node N = new node();
N.setNomElt("saut");
N.getAttributs().put("titre3", nodSujet.getAttributs().get("titre3"));
N.setClose(true);
nodanalyse.getNodes().add(N);
}
}
}
return nodanalyse;
}

View File

@ -680,11 +680,11 @@ public class outils {
public static String withoutCodeAndPointPourRechercheContenuExact(String B) {
if(B!=null) {
if(B.contains("")) B=B.replaceAll("‽[0-9]{0,}", ""); //B=B.substring(0, B.indexOf(""));
if(B.contains("")) B=B.replace("", "");
if(B.contains("")) B=B.replace("", "");
if(B.contains("")) B=B.replace("", "");
if(!B.isEmpty()) B=B.replace("¢", "");
B=B.replaceAll("‽[0-9]{1,}", "");
if(!B.isEmpty()) if(B.contains("")) B=B.replace("", "");
if(!B.isEmpty()) if(B.contains("")) B=B.replace("", "");
if(!B.isEmpty()) if(B.contains("")) B=B.replace("", "");
if(!B.isEmpty()) if(B.contains("¢")) B=B.replace("¢", "");
if(!B.isEmpty()) B=B.replaceAll("‽[0-9]{1,}", "");
}
return B;
}

View File

@ -27,207 +27,138 @@ public class rechercherUnNodeStudent {
node nodStudent =null;
//** Priorité à la recherche par contenu
//************************************************************************************************
//** Recherche le node par le contenu exact du node en intégrant les contenus des nodes enfants **
//************************************************************************************************
if(nodSujet.getAttributs().get("recherche_contenu_exact")!=null){
nodStudent = findNodeParContenuEXACT(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
if(nodStudent != null) return nodStudent;
}
// recherche le node par index uniquement
//***********************************
//** Recherche le node par l'index **
//***********************************
if(nodSujet.getAttributs().get("recherche_index")!=null){
nodStudent = findNodeParIndex(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
if(nodStudent != null) return nodStudent;
if(nodSujet.getAttributs().get("recherche_index").equalsIgnoreCase("true")) return nodStudent;
}
//*****************************************************************
//** Recherche Le node text:p par les différents contenu du node **
//** Recherche le node text:p par les différents contenu du node **
//*****************************************************************
if(nameNode.equals("text:p")) {
if(nameNode.equals("text:p")||nameNode.equals("text:span")) {
nodStudent = findLeNodeTextpParDesNodesEnfantsSpecifique(nameNode, nodSujet,nod0Student, nod1Student, nod2Student, a );
}
if(nameNode.equals("text:title")) {
if(nod2Student!=null) nodStudent = nod2Student.retourneFirstEnfantsByName("text:title");
if(nod1Student!=null) if(nodStudent==null) nodStudent = nod1Student.retourneFirstEnfantsByName("text:title");
if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByName("text:title");
return nodStudent;
}
if(nameNode.equals("text:subject")) {
if(nod2Student!=null) nodStudent = nod2Student.retourneFirstEnfantsByName("text:subject");
if(nod1Student!=null) if(nodStudent==null) nodStudent = nod1Student.retourneFirstEnfantsByName("text:subject");
if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByName("text:subject");
}
if(nameNode.equals("text:initial-creator")) {
if(nod2Student!=null) nodStudent = nod2Student.retourneFirstEnfantsByName("text:initial-creator");
if(nod1Student!=null) if(nodStudent==null) nodStudent = nod1Student.retourneFirstEnfantsByName("text:initial-creator");
if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByName("text:initial-creator");
}
if(nameNode.equals("text:user-defined")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
}
//recherche par le contenu enfant du node les titres par défaut
if(nameNode.equals("text:h")) {
String contenuSujet = nodSujet.retourneLesContenusEnfants("");
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
}
//recherche par text:name
if(nameNode.equals("text:section")) {
if(nodSujet.getAttributs().get("recherche_index")==null) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
}else {
if(nodSujet.getAttributs().get("recherche_index").equals("false")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
}
if(nodSujet.getAttributs().get("recherche_index").equals("true")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
}
}
}
//recherche par le nom de la colonne dans les database
if(nameNode.equals("text:database-display")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
}
//recherche par le nom de l'objet draw:name ou par text:anchor-page-number si ancrer à la page
//********************************************************************************
//** Recherche le node draw:frame par draw:name ou recherche_anchor-page-number **
//********************************************************************************
if(nameNode.equals("draw:frame")) {
if(nodSujet.getAttributs().get("recherche_anchor-page-number")==null) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
}else {
if(nodSujet.getAttributs().get("recherche_anchor-page-number").equals("false")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
}
if(nodSujet.getAttributs().get("recherche_anchor-page-number").equals("true")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
//si recherche l'ancrage de la page pas trouvé alors recherche par draw:name
if(nodStudent==null) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
}
}
}
nodStudent = findDrawFrame(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//recherche par le nom de l'objet
if(nameNode.equals("style:graphic-properties")) {
if(!nodSujet.getContenu().isEmpty()) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameContent(nod2Student, nameNode, nodSujet.getContenu().get(0));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod1Student, nameNode, nodSujet.getContenu().get(0));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod0Student, nameNode, nodSujet.getContenu().get(0));
}
//***********************************************
//** Recherche le nodes text:xxx par text:name **
//***********************************************
if(nameNode.equals("text:section") || nameNode.equals("text:user-defined") || nameNode.equals("text:table-of-content")) {
nodStudent = findByTextName(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//******************************************************************
//** Recherche le node text:database-display par text:column-name **
//******************************************************************
if(nameNode.equals("text:database-display")) {
nodStudent = findDataBase(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//Recherche un node table
if(nameNode.contains("table")) {
//recherche par le nom de la table
if(nameNode.equals("table:table")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
}
//recherche par l'index
if(nameNode.equals("table:table-row")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
}
//recherche par l'index
if(nameNode.equals("table:table-cell")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
}
//**************************************************
//** Recherche le node table:table par table:name **
//**************************************************
if(nameNode.equals("table:table")) {
nodStudent = findTable(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//*************************************************************************
//** Recherche le node text:h par le contenu avec tolérance de carcatère **
//*************************************************************************
if(nameNode.equals("text:h")) {
nodStudent = findByContentWithTolerance(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//recherche par le nom du style qui est toujours formé par nomtable.colonne
if(nameNode.equals("table:table-column")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
}
//*******************************************************
//** Recherche le node par l'index mais si pas demandé **
//*******************************************************
if(nameNode.equals("table:table-row") || nameNode.equals("table:table-cell") || nameNode.equals("text:tab") || nameNode.equals("text:span")) {
nodStudent = findByIndexEvenIsFalse(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//***************************************************************
//** Recherche le node table:table-column par table:style-name **
//***************************************************************
if(nameNode.equals("table:table-column")) {
nodStudent = findTableByStyleName(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//recherche par texte:name
if(nameNode.equals("text:table-of-content")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
}
//*********************************************
//** Recherche le node par le contenu simple **
//*********************************************
if(nameNode.equals("text:tab") || nameNode.equals("style:graphic-properties")) {
nodStudent = findByContentZero(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//recherche par contenu
if(nameNode.equals("text:span")) {
String contenuSujet = nodSujet.retourneLesContenusEnfants("");
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
//*****************************************************************
//** Recherche Le node text:p par les différents contenu du node **
//** text:title - text:subject - text:initial-creator - text:tab **
//*****************************************************************
if(nodStudent==null) {
nodStudent = findByNameNode(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
//recherche par contenu
if(nameNode.equals("text:tab")) {
String contenuSujet = nodSujet.retourneLesContenusEnfants("");
if(!contenuSujet.trim().isEmpty()) {
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
}
//*********************************************
//** Recherche le node par le contenu simple **
//*********************************************
if(nodStudent==null){
nodStudent = findByContentZero(nameNode, nodSujet, nod0Student, nod1Student, nod2Student, a);
}
// dernière tentative si le node est vide, recherche par le nom du node
if(nodStudent==null && !nameNode.equals("text:p")) {
if(nod2Student!=null) if(nod2Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod2Student.retourneFirstEnfantsByName(nameNode);
if(nod1Student!=null) if(nodStudent==null) if(nod1Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod1Student.retourneFirstEnfantsByName(nameNode);
if(nod0Student!=null) if(nodStudent==null) if(nod0Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod0Student.retourneFirstEnfantsByName(nameNode);
}
return nodStudent;
}
/**
* Recherche par le contenu exact du node. Englobe les contenus des nodes enfants.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findNodeParContenuEXACT(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a ) {
node nodStudent = null;
if(nodSujet.getAttributs().get("recherche_contenu_exact").equals("true")) {
String valueAttribut = outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getContenu().get(0));
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(!nodSujet.retourneLesContenusEnfants("").isEmpty()) {
String valueAttribut = outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.retourneLesContenusEnfants(""));
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nodSujet.getNomElt());
}
}
return nodStudent;
}
/**
* Recherche par l'attribut index.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findNodeParIndex(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a ) {
node nodStudent = null;
if(nodSujet.getAttributs().get("recherche_index").equals("true")) {
@ -303,42 +234,212 @@ public class rechercherUnNodeStudent {
if(nod0Student!=null) if(nodStudent==null) nodStudent = nod0Student.retourneFirstEnfantsByNameNode1ContainNameNode2("text:p","text:creator");
}
if(nodSujet.getAttributs().get("recherche_contenu_exact")!=null) {
if(nodSujet.getAttributs().get("recherche_contenu_exact").equalsIgnoreCase("true")) {
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
}
//** Recherche par contenu
if(!nodSujet.getContenu().isEmpty()) {
String valueAttribut = outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getContenu().get(0));
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod2Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod1Student.getNodes(), valueAttribut, nodSujet.getNomElt());
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContentExact(nod0Student.getNodes(), valueAttribut, nodSujet.getNomElt());
}
// if(nodSujet.getAttributs().get("recherche_index")!=null) {
// if(nodSujet.getAttributs().get("recherche_index").equalsIgnoreCase("true")) {
// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
// }
// }
//
//
// if(nodStudent==null) {
// if(nodSujet.retourneLesContenusEnfants("").isEmpty()) { //s'il n'y a pas de contenu, passe par l'index
// if(nodSujet.getAttributs().get("index")!=null) {
// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("index")));
// }
// }else {
// String contenuSujet = nodSujet.retourneLesContenusEnfants("");
// if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(),contenuSujet ,commandes.tolerance_characters,commandes.tolerance_text);
// if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
// if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
// }
// }
//** Recherche le node par index uniquement. Si trouve pa retourne un null.
if(nodSujet.getAttributs().get("index")!=null){
String valueAttribut = nodSujet.getAttributs().get("index");
if(nod2Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student.getNodes(), nodSujet.getNomElt(),"index",valueAttribut);
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student.getNodes(), nodSujet.getNomElt(),"index",valueAttribut);
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student.getNodes(), nodSujet.getNomElt(),"index",valueAttribut);
}
return nodStudent;
}
/**
* Recherche Le node draw:frame par l'attribut draw:name ou recherche_anchor-apge-number.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findDrawFrame(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
//recherche par le nom de l'objet draw:name par défaut
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod2Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod1Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValueNetTexte(nod0Student, nameNode, "draw:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("draw:name")));
if(nodStudent!=null) return nodStudent;
if(nodSujet.getAttributs().get("recherche_anchor-page-number")!=null) if(nodSujet.getAttributs().get("recherche_anchor-page-number").equalsIgnoreCase("true")) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:anchor-page-number", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("text:anchor-page-number")));
}
return nodStudent;
}
/**
* Recherche Le node text:section par l'attribut text:name;</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findByTextName(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:name")));
return nodStudent;
}
/**
* Recherche le node par son nom. Retourne le premier node qui correspond au nom du node.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findByNameNode(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(nod2Student!=null) if(nod2Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod2Student.retourneFirstEnfantsByName(nameNode);
if(nod1Student!=null) if(nodStudent==null) if(nod1Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod1Student.retourneFirstEnfantsByName(nameNode);
if(nod0Student!=null) if(nodStudent==null) if(nod0Student.retourneEnfantsByNameExist(nameNode)) nodStudent = nod0Student.retourneFirstEnfantsByName(nameNode);
return nodStudent;
}
/**
* Recherche le node text:database-display par text:column-name.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findDataBase(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "text:column-name", outils.withoutCodeAndPoint(nodSujet.getAttributs().get("text:column-name")));
return nodStudent;
}
/**
* Recherche le node par le contenu simple get(0).</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findByContentZero(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(!nodSujet.getContenu().isEmpty()) {
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameContent(nod2Student, nameNode, nodSujet.getContenu().get(0));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod1Student, nameNode, nodSujet.getContenu().get(0));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameContent(nod0Student, nameNode, nodSujet.getContenu().get(0));
}
return nodStudent;
}
/**
* Rechercher le node table:table par table:name.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findTable(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:name", outils.withoutCodeAndPointPourRechercheContenuExact(nodSujet.getAttributs().get("table:name")));
return nodStudent;
}
/**
* Recherche le node par son contenu avec une tolérance de carcatère.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findByContentWithTolerance(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
String contenuSujet = nodSujet.retourneLesContenusEnfants("");
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByFindContent2(nod2Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod1Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByFindContent2(nod0Student.getNodes(), contenuSujet,commandes.tolerance_characters,commandes.tolerance_text);
return nodStudent;
}
/**
* Rechreche le node par son index même si pas demandé.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findByIndexEvenIsFalse(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(nodSujet.getAttributs().get("index")!=null){
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "index", nodSujet.getAttributs().get("index"));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "index", nodSujet.getAttributs().get("index"));
}
return nodStudent;
}
/**
* Recherche le node par table:style-name.</br>
* @param nameNode
* @param nodSujet
* @param nod0Student
* @param nod1Student
* @param nod2Student
* @param a
* @return
*/
private static node findTableByStyleName(String nameNode, node nodSujet,node nod0Student, node nod1Student, node nod2Student, Run a) {
node nodStudent = null;
if(nod2Student!=null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod2Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
if(nod1Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod1Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
if(nod0Student!=null) if(nodStudent==null) nodStudent = a.retourneFirstNodeByNameAttributValue(nod0Student, nameNode, "table:style-name", nodSujet.getAttributs().get("table:style-name"));
return nodStudent;
}
}