994 lines
43 KiB
Java
994 lines
43 KiB
Java
package evaluer;
|
|
|
|
import java.util.Enumeration;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
|
|
import MEPTL.commandes;
|
|
import cXML.node;
|
|
import list.listeAttributsAnalyseWriter;
|
|
import list.listeDesNodesAncrable;
|
|
import list.listeDesNodesEvalPlacement;
|
|
|
|
public class evaluationAttribut {
|
|
|
|
//****************************************************************************
|
|
//****************************************************************************
|
|
//** LES DEUX POINTS D'ENTRES DES METHODES D'EVALUATION **
|
|
//****************************************************************************
|
|
//****************************************************************************
|
|
|
|
/**
|
|
* POINT D'ENTREE DE LA METHODE ANALYSESTYLE;</br>
|
|
* </br>
|
|
* Analyse tous les attributs des nodes <style:style>.<br>
|
|
* Formatage direct des styles de paragraphe.</br>
|
|
* Les attributs doivent contenir le code ‼.<br>
|
|
* <br>
|
|
* @param nodeStyleParagraphStudent : le node de l'étudiant.
|
|
* @param nodeStyleParagraphSujet : le node du sujet
|
|
* @param retour : le node à retourner avec les enfants nommés nameItem.
|
|
* @param nameItem : le nom des nodes enfants.
|
|
* @param nameElt : le nom de l'élément (node) analysé.
|
|
* @return le node <b>retour</b> avec tous les nodes enfants <b>nameItem</b> contenant les différentes analyses.
|
|
*/
|
|
public static node evalLesAttributAnalyseStyle(node nodeStyleParagraphStudent, node nodeStyleParagraphSujet, node retour, String nameItem, String nameElt) {
|
|
|
|
if(nodeStyleParagraphSujet.getAttributs().get("evaluer")==null) return retour;
|
|
if(!nodeStyleParagraphSujet.getAttributs().get("evaluer").equals("true")) return retour;
|
|
|
|
Enumeration<String> key = nodeStyleParagraphSujet.getAttributs().keys();
|
|
while(key.hasMoreElements()) {
|
|
String k = key.nextElement();
|
|
if(nodeStyleParagraphSujet.getAttributs().get(k).contains("‼") || nodeStyleParagraphSujet.getAttributs().get(k).contains("‽")){
|
|
if(nodeStyleParagraphStudent!=null) {
|
|
String valueAttributStudent = nodeStyleParagraphStudent.getAttributs().get(k);
|
|
String valueAttributSujet = nodeStyleParagraphSujet.getAttributs().get(k).replace("‼", "‽");
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem,k, valueAttributStudent, valueAttributSujet,nameElt);
|
|
retour.getNodes().add(item);
|
|
}else {
|
|
String valueAttributStudent = "null";
|
|
String valueAttributSujet = nodeStyleParagraphSujet.getAttributs().get(k).replace("‼", "‽");
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem, k, valueAttributStudent, valueAttributSujet,nameElt);
|
|
retour.getNodes().add(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(nodeStyleParagraphStudent!=null) {
|
|
if(nodeStyleParagraphSujet.retourneEnfantsByNameExist("style:paragraph-properties") && nodeStyleParagraphStudent.retourneEnfantsByNameExist("style:paragraph-properties") ) {
|
|
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:paragraph-properties");
|
|
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
|
|
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
|
|
|
|
node propertiesStudent = nodeStyleParagraphStudent.retourneFirstEnfantsByName("style:paragraph-properties");
|
|
key = propertiesSujet.getAttributs().keys();
|
|
while(key.hasMoreElements()) {
|
|
String k = key.nextElement();
|
|
if(propertiesSujet.getAttributs().get(k).contains("‼") || propertiesSujet.getAttributs().get(k).contains("‽")){
|
|
if(propertiesStudent!=null) {
|
|
String valueAttributStudent = propertiesStudent.getAttributs().get(k);
|
|
String valueAttributSujet = propertiesSujet.getAttributs().get(k).replace("‼", "‽");
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem,k, valueAttributStudent, valueAttributSujet,"style:paragraph-properties");
|
|
retour.getNodes().add(item);
|
|
}else {
|
|
String valueAttributStudent = "null";
|
|
String valueAttributSujet = propertiesSujet.getAttributs().get(k).replace("‼", "‽");
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem, k, valueAttributStudent, valueAttributSujet,"style:paragraph-properties");
|
|
retour.getNodes().add(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}else {
|
|
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:paragraph-properties");
|
|
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
|
|
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
|
|
|
|
key = propertiesSujet.getAttributs().keys();
|
|
while(key.hasMoreElements()) {
|
|
String k = key.nextElement();
|
|
if(propertiesSujet.getAttributs().get(k).contains("‼") || propertiesSujet.getAttributs().get(k).contains("‽")){
|
|
String valueAttributStudent = "null";
|
|
String valueAttributSujet = propertiesSujet.getAttributs().get(k).replace("‼", "‽");
|
|
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem, k, valueAttributStudent, valueAttributSujet,"style:paragraph-properties");
|
|
retour.getNodes().add(item);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
if(nodeStyleParagraphStudent!=null) {
|
|
if(nodeStyleParagraphSujet.retourneEnfantsByNameExist("style:text-properties") && nodeStyleParagraphStudent.retourneEnfantsByNameExist("style:text-properties") ) {
|
|
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:text-properties");
|
|
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
|
|
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
|
|
|
|
node propertiesStudent = nodeStyleParagraphStudent.retourneFirstEnfantsByName("style:text-properties");
|
|
key = propertiesSujet.getAttributs().keys();
|
|
while(key.hasMoreElements()) {
|
|
String k = key.nextElement();
|
|
if(propertiesSujet.getAttributs().get(k).contains("‼") || propertiesSujet.getAttributs().get(k).contains("‽")){
|
|
if(propertiesStudent!=null) {
|
|
String valueAttributStudent = propertiesStudent.getAttributs().get(k);
|
|
String valueAttributSujet = propertiesSujet.getAttributs().get(k).replace("‼", "‽");
|
|
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem,k, valueAttributStudent, valueAttributSujet,"style:text-properties");
|
|
retour.getNodes().add(item);
|
|
}else {
|
|
String valueAttributStudent = "null";
|
|
String valueAttributSujet = propertiesSujet.getAttributs().get(k).replace("‼", "‽");
|
|
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem, k, valueAttributStudent, valueAttributSujet,"style:text-properties");
|
|
retour.getNodes().add(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}else {
|
|
node propertiesSujet = nodeStyleParagraphSujet.retourneFirstEnfantsByName("style:text-properties");
|
|
if(propertiesSujet.getAttributs().get("evaluer")!=null) {
|
|
if(propertiesSujet.getAttributs().get("evaluer").equals("true")) {
|
|
|
|
key = propertiesSujet.getAttributs().keys();
|
|
while(key.hasMoreElements()) {
|
|
String k = key.nextElement();
|
|
if(propertiesSujet.getAttributs().get(k).contains("‼") || propertiesSujet.getAttributs().get(k).contains("‽")){
|
|
String valueAttributStudent = "null";
|
|
String valueAttributSujet = propertiesSujet.getAttributs().get(k).replace("‼", "‽");
|
|
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem, k, valueAttributStudent, valueAttributSujet,"style:text-properties");
|
|
retour.getNodes().add(item);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
|
|
/**
|
|
* POINTS ENTREES DES METHODES D'EVALUATION</br>
|
|
* </br>
|
|
* Analyse tous les attributs et les contenus d'un node.<br>
|
|
* Les attributs et les contenus doivent posséder la caractère ‽ ou ‼.<br>
|
|
* Ou le node doit posséder des attributs d'analyseWriter comme allContent="1", etc...</br>
|
|
* <br>
|
|
* @param nodeStudent : le node de l'étudiant.
|
|
* @param sujet : le node du sujet
|
|
* @param retour : le node à retourner avec les enfants nommés nameItem.
|
|
* @param nameItem : le nom des nodes enfants.
|
|
* @param nameElt : le nom de l'élément (node) analysé.
|
|
* @return le node <b>retour</b> avec tous les nodes enfants <b>nameItem</b> contenant les différentes analyse.
|
|
*/
|
|
public static node evalLesAttributEtContenuDuNode(node nodeStudent, node sujet, node retour, String nameItem, String nameElt) {
|
|
Enumeration<String> key = sujet.getAttributs().keys();
|
|
while(key.hasMoreElements()) {
|
|
String k = key.nextElement();
|
|
|
|
// evaluer les attributs de Writer avec l'évaluateur ‽
|
|
if( sujet.getAttributs().get(k).contains("‽")){
|
|
if(nodeStudent!=null) {
|
|
String valueAttributStudent = nodeStudent.getAttributs().get(k);
|
|
String valueAttributSujet = sujet.getAttributs().get(k);
|
|
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem,k, valueAttributStudent, valueAttributSujet,nameElt);
|
|
retour.getNodes().add(item);
|
|
}else {
|
|
String valueAttributStudent = "null";
|
|
String valueAttributSujet = sujet.getAttributs().get(k);
|
|
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem, k, valueAttributStudent, valueAttributSujet,nameElt);
|
|
retour.getNodes().add(item);
|
|
}
|
|
}
|
|
|
|
// evaluer avec evalNameNode, evalNameCreator, evalNameInitialCreator, evalEntetePasActive, evalPiedPagePasActive
|
|
// evalNameSequen, evalNamePage
|
|
if(!sujet.getAttributs().get(k).equals("0")) {
|
|
|
|
//évaluation du nom du node.
|
|
if(k.equals("evalNameNode") && !sujet.getAttributs().get(k).equals("0")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNameNode(retour,nodeStudent, sujet.getNomElt(), sujet.getAttributs().get("evalNameNode"),sujet.getNomElt());
|
|
}else {
|
|
retour = evaluationNameNode(retour,null, sujet.getNomElt(), sujet.getAttributs().get("evalNameNode"),sujet.getNomElt());
|
|
}
|
|
}
|
|
|
|
//évaluation du nom du style héridé.
|
|
if(k.equals("evalNameLegacyStyle") && !sujet.getAttributs().get(k).equals("0")) {
|
|
retour = evalNameLegacyStyle(sujet,nodeStudent,retour,nameElt);
|
|
}
|
|
|
|
//évaluation du nom du créateur.
|
|
if(k.equals("evalNameCreator") && sujet.getNomElt().equals("dc:creator")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNameCreator(retour,nodeStudent, nodeStudent.getContenu().get(0), sujet.getAttributs().get("evalNameCreator"),"Editeur");
|
|
}else {
|
|
retour = evaluationNameCreator(retour,null, "Pas trouvé l'auteur", sujet.getAttributs().get("evalNameCreator"),"Editeur");
|
|
}
|
|
}
|
|
|
|
//évaluation du créateur initial
|
|
if(k.equals("evalNameInitialCreator") && sujet.getNomElt().equals("meta:initial-creator")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNameInitialCreator(retour,nodeStudent, nodeStudent.getContenu().get(0), sujet.getAttributs().get("evalNameInitialCreator"),"Créateur");
|
|
}else {
|
|
retour = evaluationNameInitialCreator(retour,null, "Pas trouvé le créateur", sujet.getAttributs().get("evalNameInitialCreator"),"Créateur");
|
|
}
|
|
}
|
|
|
|
// evaluer la non activation de l'entête.
|
|
if(k.equals("evalEntetePasActive") && sujet.getNomElt().equals("style:header-style")) {
|
|
retour=evalEntetePasActive(sujet, nodeStudent, retour, nameElt);
|
|
}
|
|
|
|
// evaluer l'activation de l'entête
|
|
if(k.equals("evalEnteteActive") && sujet.getNomElt().equals("style:header-style")) {
|
|
retour=evalEnteteActive(sujet, nodeStudent, retour, nameElt);
|
|
}
|
|
|
|
//evaluer la non activation du pied de page.
|
|
if(k.equals("evalPiedPagePasActive") && sujet.getNomElt().equals("style:footer-style")) {
|
|
retour=evalPiedDePagePasActive(sujet, nodeStudent, retour, nameElt);
|
|
}
|
|
|
|
// evaluer l'activation du pied de page
|
|
if(k.equals("evalPiedPageActive") && sujet.getNomElt().equals("style:footer-style")) {
|
|
retour=evalPiedDePageActive(sujet, nodeStudent, retour, nameElt);
|
|
}
|
|
|
|
// evaluation du nom de la séquence.
|
|
if(k.equals("evalNameSequence") && sujet.getNomElt().equals("text:sequence-decl")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNameSequence(retour,nodeStudent, sujet.getAttributs().get("text:name"), sujet.getAttributs().get("evalNameSequence"),"Séquence");
|
|
}else {
|
|
retour = evaluationNameSequence(retour,null, "Pas trouvé la séquence", sujet.getAttributs().get("evalNameSequence"),"Séquence");
|
|
}
|
|
}
|
|
|
|
// evaluation du nom de la page
|
|
if(k.equals("evalNamePage") && sujet.getNomElt().equals("page")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNamePage(retour,nodeStudent, sujet.getAttributs().get("style:master-page-name"), sujet.getAttributs().get("evalNamePage"),"Page");
|
|
}else {
|
|
retour = evaluationNamePage(retour,null, "Pas trouvé la page", sujet.getAttributs().get("evalNamePage"),"Page");
|
|
}
|
|
}
|
|
|
|
// evaluation de la propriété personnalisé dans la structure du document
|
|
if(k.equals("evalTextUserDefined") && sujet.getNomElt().equals("text:user-defined") && sujet.chemin().contains("structurepage")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationTextUserDefined(retour,nodeStudent, sujet.getAttributs().get("text:name"), sujet.getAttributs().get("evalTextUserDefined"),"Propriété personnalisé");
|
|
}else {
|
|
retour = evaluationTextUserDefined(retour,null, "Pas trouvé la valeur", sujet.getAttributs().get("evalTextUserDefined"),"Propriété personnalisé");
|
|
}
|
|
}
|
|
|
|
// evaluation du numéro de la page.
|
|
if(k.equals("evalNumeroPage") && sujet.getNomElt().equals("page")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNumeroPage(retour,nodeStudent, sujet.getAttributs().get("numero"), sujet.getAttributs().get("evalNumeroPage"),"numéro");
|
|
}else {
|
|
retour = evaluationNumeroPage(retour,null, "Pas trouvé la page", sujet.getAttributs().get("evalNumeroPage"),"numéro");
|
|
}
|
|
}
|
|
|
|
// evaluation du numéro absolu de la page.
|
|
if(k.equals("evalNumeroAbsoluePage") && sujet.getNomElt().equals("page")) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNumeroAbsoluePage(retour,nodeStudent, sujet.getAttributs().get("numeroabsolue"), sujet.getAttributs().get("evalNumeroAbsoluePage"),"numéro absolue");
|
|
}else {
|
|
retour = evaluationNumeroAbsoluePage(retour,null, "Pas trouvé la page", sujet.getAttributs().get("evalNumeroAbsoluePage"),"numéro absolue");
|
|
}
|
|
}
|
|
|
|
// evaluation de l'ancrage au numéro absolu de la page.
|
|
if(k.equals("evalAncrageNumeroAbsoluePage") && listeDesNodesAncrable.isAncrable(sujet)) {
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNumeroAbsoluePage(retour,nodeStudent.retourneNodePage(), sujet.retourneNodePage().getAttributs().get("numeroabsolue"), sujet.getAttributs().get("evalAncrageNumeroAbsoluePage"),"Ancrage");
|
|
}else {
|
|
retour = evaluationNumeroAbsoluePage(retour,null, "Pas trouvé la page", sujet.retourneNodePage().getAttributs().get("numeroabsolue"),"Ancrage");
|
|
}
|
|
}
|
|
|
|
// evaluation du placement du paragraphe
|
|
if(k.equals("evalPlacement") && listeDesNodesEvalPlacement.isPlacement(sujet)) {
|
|
retour=evalPlacement(sujet, nodeStudent, retour, nameElt);
|
|
}
|
|
|
|
//evaluation du dernier enfant
|
|
if(k.equals("evalFirstChild") && listeDesNodesEvalPlacement.isPlacement(sujet)) {
|
|
if(nodeStudent!=null) {
|
|
String ReponseSujet = "true";
|
|
retour = evaluationDernierEnfant(retour,nodeStudent, ReponseSujet, sujet.getAttributs().get("evalFirstChild"),"FirstChild");
|
|
}else {
|
|
retour = evaluationDernierEnfant(retour,null, "true", sujet.getAttributs().get("evalFirstChild"),"FirstChild");
|
|
}
|
|
}
|
|
|
|
//evaluation du premier enfant
|
|
if(k.equals("evalLastChild") && listeDesNodesEvalPlacement.isPlacement(sujet)) {
|
|
if(nodeStudent!=null) {
|
|
String ReponseSujet = "true";
|
|
retour = evaluationPremierEnfant(retour,nodeStudent, ReponseSujet, sujet.getAttributs().get("evalLastChild"),"LastChild");
|
|
}else {
|
|
retour = evaluationPremierEnfant(retour,null, "true", sujet.getAttributs().get("evalLastChild"),"LastChild");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//allContent
|
|
if(sujet.getAttributs().get("allContent")!=null) if(!sujet.getAttributs().get("allContent").isEmpty()){
|
|
retour = allContent(sujet, nodeStudent, retour, nameElt, nameItem);
|
|
}
|
|
|
|
return retour;
|
|
}
|
|
|
|
|
|
//****************************************************************************
|
|
//****************************************************************************
|
|
//** LES METHODES LORSQU'ELLES SONT LONGUES **
|
|
//****************************************************************************
|
|
//****************************************************************************
|
|
|
|
/**
|
|
* Méthode allContent.</br>
|
|
* Evaluer le contenu textuel d'un node.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node allContent(node sujet, node nodeStudent, node retour, String nameElt, String nameItem) {
|
|
String points ="‽0";
|
|
if(sujet.getAttributs().get("allContent").contains("strict")) points = sujet.getAttributs().get("allContent").replace("strict", "‽");
|
|
if(sujet.getAttributs().get("allContent").contains("strictSansEspace")) points = sujet.getAttributs().get("allContent").replace("strictSansEspace", "≡‽");
|
|
if(sujet.getAttributs().get("allContent").contains("environ")) points = sujet.getAttributs().get("allContent").replace("environ", "¢‽");
|
|
|
|
String testPoint = points.substring(points.indexOf("‽")+1, points.length());
|
|
boolean pasDeProblem = true;
|
|
boolean pointSupAUn = false;
|
|
|
|
try {
|
|
if(Integer.valueOf(testPoint)>=1) pointSupAUn=true;
|
|
}catch (Exception e) {
|
|
commandes.message.append("<p>** ERREUR : "+"Dans le node " + sujet.getNomElt() + ".\nIl y a un problème avec la valeur de l'attribut allContent=\"" + sujet.getAttributs().get("allContent") + "\""
|
|
+"</p>");
|
|
System.out.println("Dans le node " + sujet.getNomElt() + ".\nIl y a un problème avec la valeur de l'attribut allContent=\"" + sujet.getAttributs().get("allContent") + "\"");
|
|
System.out.println(e.toString());
|
|
pasDeProblem=false;
|
|
}
|
|
|
|
if(pasDeProblem && pointSupAUn) {
|
|
String allContentSujet = evaluation.withoutCodeAndPointPourRechercheContenuExact(sujet.retourneLesContenusEnfants("")) + points;
|
|
String allContentStudent = "null";
|
|
if( nodeStudent!=null) allContentStudent = nodeStudent.retourneLesContenusEnfants("");
|
|
node item = retourneNoteAvecResultatsAnalyse(nameItem,"Contenu textuel", allContentStudent, allContentSujet, nameElt);
|
|
retour.getNodes().add(item);
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Méthode evalNameLegacyStyme.</br>
|
|
* Evaluer le nom du style hérité.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node evalNameLegacyStyle(node sujet, node nodeStudent, node retour, String nameElt) {
|
|
String nameLegacyStyleSujet = sujet.getAttributs().get("text:style-name");
|
|
String point = sujet.getAttributs().get("evalNameLegacyStyle");
|
|
|
|
Pattern p = Pattern.compile("^P[0-9]{1,}|^T[0-9]{1,}|^L[0-9]{1,}");
|
|
|
|
if(nameLegacyStyleSujet!=null) {
|
|
Matcher m = p.matcher(nameLegacyStyleSujet);
|
|
if(m.find()) {
|
|
node fichier = sujet.racineDuNode();
|
|
node styleParagraphs = fichier.retourneFirstEnfantsByName("style:paragraph").retourneFirstNodeByNameAndAttributValueExactStrict("style:style", "style:name", nameLegacyStyleSujet);
|
|
if(styleParagraphs!=null) {
|
|
if(styleParagraphs.getAttributs().get("style:parent-style-name")!=null) {
|
|
nameLegacyStyleSujet = styleParagraphs.getAttributs().get("style:parent-style-name");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
String nameLegacyStyleStudent="";
|
|
if(nodeStudent!=null) {
|
|
nameLegacyStyleStudent = nodeStudent.getAttributs().get("text:style-name");
|
|
if(nameLegacyStyleStudent!=null) {
|
|
Matcher m = p.matcher(nameLegacyStyleStudent);
|
|
if(m.find()) {
|
|
if(nodeStudent.getAttributs().get("text:style-name")!=null) {
|
|
String nameStyle1 = nodeStudent.getAttributs().get("text:style-name");
|
|
node fichier = nodeStudent.racineDuNode();
|
|
node styleParagraphs = fichier.retourneFirstEnfantsByName("style:paragraph").retourneFirstNodeByNameAndAttributValueExactStrict("style:style", "style:name", nameStyle1);
|
|
if(styleParagraphs!=null) {
|
|
if(styleParagraphs.getAttributs().get("style:parent-style-name")!=null) {
|
|
nameLegacyStyleStudent = styleParagraphs.getAttributs().get("style:parent-style-name");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(nodeStudent!=null) {
|
|
retour = evaluationNameLegacyStyle(retour,nodeStudent, sujet.getNomElt(), point, nameElt, nameLegacyStyleStudent, nameLegacyStyleSujet) ;
|
|
}else {
|
|
retour = evaluationNameLegacyStyle(retour,null, sujet.getNomElt(), point, nameElt, nameLegacyStyleStudent, nameLegacyStyleSujet) ;
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Méthode evalEntetePasActive.</br>
|
|
* Evaluer l'absence de node dans le node style:header-style.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node evalEntetePasActive(node sujet, node nodeStudent, node retour, String nameElt) {
|
|
if(nodeStudent!=null) {
|
|
int nbA=0;
|
|
int nbAs=0;
|
|
String reponseSujet = "oui";
|
|
String reponseStudent = "oui";
|
|
Enumeration<String> key1 = sujet.getAttributs().keys();
|
|
while(key1.hasMoreElements()) {
|
|
String k1 = key1.nextElement();
|
|
if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(k1)) nbA++;
|
|
}
|
|
if(nbA<=0) reponseSujet = "non";
|
|
key1 = nodeStudent.getAttributs().keys();
|
|
while(key1.hasMoreElements()) {
|
|
String k1 = key1.nextElement();
|
|
if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(k1)) nbAs++;
|
|
}
|
|
if(nbAs<=0)reponseStudent = "non";
|
|
retour = evaluationEntetePasActive(retour,reponseStudent,reponseSujet,sujet.getAttributs().get("evalEntetePasActive"),"Entete");
|
|
}else {
|
|
retour = evaluationEntetePasActive(retour,null, "Pas trouvé le node de l'étudiant", sujet.getAttributs().get("evalEntetePasActive"),"Entete");
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Méthode evalEnteteActive.</br>
|
|
* Evaluer la présence de node dans style:header-style.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node evalEnteteActive(node sujet, node nodeStudent, node retour, String nameElt) {
|
|
if(nodeStudent!=null) {
|
|
int nbAs=0;
|
|
String reponseSujet = "oui";
|
|
String reponseStudent = "oui";
|
|
Enumeration<String> key1 = sujet.getAttributs().keys();
|
|
key1 = nodeStudent.getAttributs().keys();
|
|
while(key1.hasMoreElements()) {
|
|
String k1 = key1.nextElement();
|
|
if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(k1)) nbAs++;
|
|
}
|
|
if(nbAs<=0)reponseStudent = "non";
|
|
retour = evaluationEnteteActive(retour,reponseStudent,reponseSujet,sujet.getAttributs().get("evalEnteteActive"),"Entete");
|
|
}else {
|
|
retour = evaluationEnteteActive(retour,null, "Pas trouvé le node de l'étudiant", sujet.getAttributs().get("evalEnteteActive"),"Entete");
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Méthode evalPiedDePagePasActive.</br>
|
|
* Evaluer l'absence de node dans le node style:footer-style.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node evalPiedDePagePasActive(node sujet, node nodeStudent, node retour, String nameElt) {
|
|
if(nodeStudent!=null) {
|
|
int nbA=0;
|
|
int nbAs=0;
|
|
String reponseSujet = "oui";
|
|
String reponseStudent = "oui";
|
|
Enumeration<String> key1 = sujet.getAttributs().keys();
|
|
while(key1.hasMoreElements()) {
|
|
String k1 = key1.nextElement();
|
|
if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(k1)) nbA++;
|
|
}
|
|
if(nbA==0) reponseSujet = "non";
|
|
key1 = nodeStudent.getAttributs().keys();
|
|
while(key1.hasMoreElements()) {
|
|
String k1 = key1.nextElement();
|
|
if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(k1)) nbAs++;
|
|
}
|
|
if(nbAs==0)reponseStudent = "non";
|
|
retour = evaluationPiedPagePasActive(retour,reponseStudent,reponseSujet , sujet.getAttributs().get("evalPiedPagePasActive"),"Pied page");
|
|
}else {
|
|
retour = evaluationPiedPagePasActive(retour,null, "Pas trouvé le node de l'étudiant", sujet.getAttributs().get("evalPiedPagePasActive"),"Pied page");
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Méthode evalPiedDePageActive.</br>
|
|
* Evaluer la présence de node dans le node style:header-style.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node evalPiedDePageActive(node sujet, node nodeStudent, node retour, String nameElt) {
|
|
if(nodeStudent!=null) {
|
|
int nbAs=0;
|
|
String reponseSujet = "oui";
|
|
String reponseStudent = "oui";
|
|
Enumeration<String> key1 = sujet.getAttributs().keys();
|
|
key1 = nodeStudent.getAttributs().keys();
|
|
while(key1.hasMoreElements()) {
|
|
String k1 = key1.nextElement();
|
|
if(listeAttributsAnalyseWriter.isAttributAnalyseWriter(k1)) nbAs++;
|
|
}
|
|
if(nbAs<=0)reponseStudent = "non";
|
|
retour = evaluationPiedPageActive(retour,reponseStudent,reponseSujet , sujet.getAttributs().get("evalPiedPageActive"),"Pied page");
|
|
}else {
|
|
retour = evaluationPiedPageActive(retour,null, "Pas trouvé le node de l'étudiant", sujet.getAttributs().get("evalPiedPageActive"),"Pied page");
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
|
|
/**
|
|
* Méthode Placement;</br>
|
|
* Evaluer si le node placé juste avant est le même que dans le sujet.</br>
|
|
* @param sujet : le node sujet.
|
|
* @param nodeStudent : le node du student.
|
|
* @param retour : le node contenant les points et les informations de l'évaluation.
|
|
* @param nameElt : le mon de l'élément évalué.
|
|
* @return le node retour
|
|
*/
|
|
private static node evalPlacement(node sujet,node nodeStudent, node retour, String nameElt) {
|
|
if(nodeStudent!=null) {
|
|
int calcul = 0;
|
|
node nodeSujetfrereAvant = sujet.retourneLeNodeFrereAvant();
|
|
node nodeStudentfereAvant = nodeStudent.retourneLeNodeFrereAvant();
|
|
if(nodeSujetfrereAvant==null) nodeSujetfrereAvant = new node();
|
|
if(nodeStudentfereAvant==null) nodeStudentfereAvant = new node();
|
|
String A = nodeSujetfrereAvant.retourneLesContenusEnfants("");
|
|
String B = nodeStudentfereAvant.retourneLesContenusEnfants("");
|
|
if(A.isEmpty() && B.isEmpty()) calcul++;
|
|
if(!A.isEmpty() && !B.isEmpty()) if(cXML.StringSimilarity.similarity(A, B)>0.92) calcul++;
|
|
|
|
if(calcul==1) {
|
|
retour = evaluationPlacement(retour,B, A , sujet.getAttributs().get("evalPlacement"),"Placement");
|
|
}else {
|
|
retour = evaluationPlacement(retour,null, A , sujet.getAttributs().get("evalPlacement"),"Placement");
|
|
}
|
|
}else {
|
|
node nodeSujetAvant = sujet.retourneLeNodeFrereAvant();
|
|
retour = evaluationPlacement(retour,null, nodeSujetAvant.retourneLesContenusEnfants(""), sujet.getAttributs().get("evalPlacement"),"Placement");
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
|
|
|
|
|
|
//***********************************************************************************
|
|
//***********************************************************************************
|
|
//** Les procédures suivantes sont les évaluations par comparaison avec le sujet **
|
|
//***********************************************************************************
|
|
//***********************************************************************************
|
|
|
|
/**
|
|
* Evaluation le nom du node.</br>
|
|
* @param retour : le node retour qui contient l'item ajouté
|
|
* @param nodStudent : le node Student qui peut être null
|
|
* @param nameNode : le nom du node
|
|
* @param point : les points
|
|
* @param nameElt : le nom de l'élément
|
|
* @return
|
|
*/
|
|
private static node evaluationNameNode(node retour, node nodStudent, String nameNode, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nameNode,"name", nodStudent.getNomElt(),nameNode + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nameNode, "Erreur : -"+evaluation.getPointEnJeu()+" pt", "Nom du node" , "null", nameNode, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation du nom du style hérité.</br>
|
|
* </br>
|
|
* @param retour : node retour pour le node d'analyse ana:xxx
|
|
* @param nodStudent : node Student
|
|
* @param nameNode : nom du node
|
|
* @param point : point mise en jeu.
|
|
* @param nameElt : nom de l'élément pour le feedback (attribut)
|
|
* @param nameStyleLegacyStudent : Contenu textuel (le nom dy style hérité de l'étudiant)
|
|
* @param nameStyleLegacySujet : Contenu textuel (le nom dy style hérité du sujet)
|
|
* @return
|
|
*/
|
|
private static node evaluationNameLegacyStyle(node retour,node nodStudent, String nameNode, String point, String nameElt, String nameStyleLegacyStudent, String nameStyleLegacySujet) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nameNode,"style heritage", nameStyleLegacyStudent, nameStyleLegacySujet + "‽" + point, nameElt);
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nameNode, "Erreur : -"+evaluation.getPointEnJeu()+" pt", "style heritage" , "null", nameStyleLegacySujet, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Evaluation. Si le node style:header-style ne possède pas d'attribut alors l'entete n'est pas activé.<br>
|
|
* Le nombre d'attribut est null.
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param nameNode
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationEntetePasActive(node retour, String nbAttributStudent, String nbAttribut, String point, String nameElt) {
|
|
node item = null;
|
|
if(nbAttributStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nbAttribut,"pas active", nbAttributStudent,nbAttribut + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nbAttribut, "Erreur", "pas active" , "null", nbAttribut, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation. Si le node style:header-style possède des ou un attribut alors l'entete est activé.<br>
|
|
* @param retour
|
|
* @param nbAttributStudent
|
|
* @param nbAttribut
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationEnteteActive(node retour, String nbAttributStudent, String nbAttribut, String point, String nameElt) {
|
|
node item = null;
|
|
if(nbAttributStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nbAttribut,"active", nbAttributStudent,nbAttribut + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nbAttribut, "Erreur", "active" , "null", nbAttribut, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation. Si le node style:footer-style ne possède pas d'attribut alors l'entete n'est pas activé.<br>
|
|
* @param retour
|
|
* @param nbAttributStudent
|
|
* @param nbAttribut
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationPiedPagePasActive(node retour, String nbAttributStudent, String nbAttribut, String point, String nameElt) {
|
|
node item = null;
|
|
if(nbAttributStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nbAttribut,"pas active", nbAttributStudent,nbAttribut + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nbAttribut, "Erreur", "pas active" , "null", nbAttribut, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation. Si le node style:footer-style possède des ou un attribut alors l'entete est activé.<br>
|
|
* @param retour
|
|
* @param nbAttributStudent
|
|
* @param nbAttribut
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationPiedPageActive(node retour, String nbAttributStudent, String nbAttribut, String point, String nameElt) {
|
|
node item = null;
|
|
if(nbAttributStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nbAttribut,"active", nbAttributStudent,nbAttribut + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nbAttribut, "Erreur", "active" , "null", nbAttribut, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
|
|
/**
|
|
* Evaluation le champ auteur (éditeur).
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param nameCreator
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationNameCreator(node retour, node nodStudent, String nameCreator, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nameCreator,"name", nodStudent.getAttributs().get("creator"),nameCreator + "↑‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nameCreator, "Erreur", "Nom du l'éditeur" , "null", nameCreator, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
|
|
/**
|
|
* Evaluation le nom de l'auteur (créateur ou premier auteur).</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param nameCreator
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationNameInitialCreator(node retour, node nodStudent, String nameCreator, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nameCreator,"name", nodStudent.getContenu().get(0),nameCreator + "↑‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nameCreator, "Erreur", "Nom du créateur" , "null", nameCreator, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation du nom de la séquence.</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param nameSequence
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationNameSequence(node retour, node nodStudent, String nameSequence, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(nameSequence,"name", nodStudent.getAttributs().get("text:name"),nameSequence + "↑‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(nameSequence, "Erreur", "Nom de la séquence" , "null", nameSequence, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* evaluation du nom de la page.</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param namePage
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationNamePage(node retour, node nodStudent, String namePage, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(namePage,"name", nodStudent.getAttributs().get("style:master-page-name"),namePage + "↑‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(namePage, "Erreur", "Nom de la page" , "null", namePage, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
|
|
/**
|
|
* Evaluation de la valeur de la propriété personalisée dans la structure ("text:name") de text:user-defined.</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param textUserDefined
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationTextUserDefined(node retour, node nodStudent, String textUserDefined, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(textUserDefined,"valeur", nodStudent.getAttributs().get("text:name"),textUserDefined + "↑‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(textUserDefined, "Erreur", "valeur de la propriété" , "null", textUserDefined, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation du numéro de la page.</br>
|
|
* <br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param numeroPage
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationNumeroPage(node retour, node nodStudent, String numeroPage, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(numeroPage,"numéro", nodStudent.getAttributs().get("numero"),numeroPage + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(numeroPage, "Erreur", "Numéro de la page" , "null", numeroPage, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation du numéro absolu de la page.</br>
|
|
* <br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param numeroAbsoluePage
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationNumeroAbsoluePage(node retour, node nodStudent, String numeroAbsoluePage, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse(numeroAbsoluePage,"numéro absolue", "page "+nodStudent.getAttributs().get("numeroabsolue"),"page "+numeroAbsoluePage + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node(numeroAbsoluePage, "Erreur", "Numéro de la page absolue" , "null", "page "+numeroAbsoluePage, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
|
|
/**
|
|
* Evaluation du placement du node par rapport au précédent.</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param contenuParagraph
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationPlacement(node retour, String contenuParagraphStudentAvant, String contenuParagraphSujetAvant, String point, String nameElt) {
|
|
node item = null;
|
|
if(contenuParagraphStudentAvant!=null) {
|
|
//compare la même valeur "contenuParagraph" pour obtenir les points mais si un voisinage du contenu.
|
|
item = retourneNoteAvecResultatsAnalyse("Placement","avant", contenuParagraphStudentAvant , contenuParagraphSujetAvant + "╬‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node("Placement", "Erreur : -"+ point, "avant" , "null", contenuParagraphSujetAvant , 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation du dernier enfant.</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param contenuParagraph
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationDernierEnfant(node retour, node nodStudent, String reponseSujet, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse("LastChild","", String.valueOf(nodStudent.isLastChildNode()),reponseSujet + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node("LastChild", "Erreur : -"+ point, "" , "null", reponseSujet, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* Evaluation du premier enfant.</br>
|
|
* @param retour
|
|
* @param nodStudent
|
|
* @param reponseSujet
|
|
* @param point
|
|
* @param nameElt
|
|
* @return
|
|
*/
|
|
private static node evaluationPremierEnfant(node retour, node nodStudent, String reponseSujet, String point, String nameElt) {
|
|
node item = null;
|
|
if(nodStudent!=null) {
|
|
item = retourneNoteAvecResultatsAnalyse("FirstChild","", String.valueOf(nodStudent.isFirstChildNode()),reponseSujet + "‽" +point, nameElt );
|
|
}else {
|
|
evaluation.IncrementPointTotal(Integer.valueOf(point));
|
|
item = new node("FirstChild", "Erreur : -"+ point, "" , "null", reponseSujet, 2, evaluation.getPointEnJeu(),nameElt);
|
|
}
|
|
retour.getNodes().add(item);
|
|
return retour;
|
|
}
|
|
|
|
|
|
|
|
//************************************************************************
|
|
//************************************************************************
|
|
//** LA COMPARISON **
|
|
//************************************************************************
|
|
//************************************************************************
|
|
|
|
/**
|
|
* Retourne le node avec les résultats de la comparaison entre les deux valeurs (étudiant et sujet).<br>
|
|
* <br>
|
|
* @param nameNode : nom du node de retour.
|
|
* @param Tst (résultat de la comparaison)
|
|
* @param property : le nom de l'attribut.
|
|
* @param valueAttributStudent : la valeur de l'attribut de student.
|
|
* @param valueAttributSujet : la valeur de l'attribut du sujet.
|
|
* @return
|
|
*/
|
|
public static node retourneNoteAvecResultatsAnalyse(String nameNode, String property, String valueStudent, String valueSujet, String nameElt) {
|
|
String Tst = evaluation.Compare(valueStudent, valueSujet);
|
|
int niveau = 3;
|
|
if(Tst.contains("Correct")) niveau = 1;
|
|
if(Tst.contains("Erreur")) niveau = 2;
|
|
valueStudent = evaluation.remplaceCaracteresCodageAttribut(valueStudent);
|
|
valueSujet = evaluation.remplaceCaracteresCodageAttribut(valueSujet);
|
|
node item = new node(nameNode, Tst, property , valueStudent, valueSujet, niveau, evaluation.getPointEnJeu(),nameElt);
|
|
return item;
|
|
}
|
|
|
|
|
|
|
|
}
|