diff --git a/bin/MEPTL/meptl.class b/bin/MEPTL/meptl.class index 41fc658..fbc6c50 100644 Binary files a/bin/MEPTL/meptl.class and b/bin/MEPTL/meptl.class differ diff --git a/bin/MEPTL/verificationFichierAnalyse.class b/bin/MEPTL/verificationFichierAnalyse.class index 9786cd9..f3f9b2d 100644 Binary files a/bin/MEPTL/verificationFichierAnalyse.class and b/bin/MEPTL/verificationFichierAnalyse.class differ diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java index 4432e81..74a06d3 100644 --- a/src/MEPTL/commandes.java +++ b/src/MEPTL/commandes.java @@ -23,7 +23,7 @@ public class commandes { static String nameSujet = ""; //sujet par défaut public static boolean analyse = false; //analyse des fichiers étudiants public static boolean ecritCode = false; // ecriture du code du sujet - public static boolean ecritSujet = false; // ecriture 2 du code du sujet + public static boolean ecritSujet = false; // ecriture 2 du code du sujet, uniquement les nodes évalués public static boolean ecritNoteCSV = false; // ecriture note.csv public static boolean sansFeeback = false; // pas de feedback étudiant public static boolean verifHisto = false; // vérification des historiques correspond à la commande -verif diff --git a/src/MEPTL/meptl.java b/src/MEPTL/meptl.java index 6315dbe..5ca8251 100644 --- a/src/MEPTL/meptl.java +++ b/src/MEPTL/meptl.java @@ -66,36 +66,44 @@ public class meptl { //** les commandes new commandes(args,patch); + //** Chargement du node sujet (fichier d'analyse) + node nodeSujet = new node(); + + //** Nouveau node qui permet de convertir le fichier contenant la liste des étudiants en node. + node nodeCSV = null; + //** Lancement des lectures des dossiers Run a = new Run(patch,commandes.Profil); - - //** chargement du node sujet (fichier d'analyse) - //** La méthode verificationFichier Analyse permet de détecter des erreurs dans le fichier d'analyse - node nodeSujet = new node(); if(!commandes.ecritCode && commandes.analyse) { nodeSujet = chargementsujet(a, commandes.nameSujet); 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); + if(verificationFichierAnalyse.erreur==true) verificationFichierAnalyse.clotureWithErrorInanalyzeFile(); //a.ecritureNodeEnXML(nodeSujet, "sujet","",false); // ecriture du node sujet + + //** Ecriture d'un nouveau sujet. Uniquement les nodes évalués. if(commandes.ecritSujet) { - a.ecritureNodeEnXML(nodeSujet, "sujet","",false, "Sujet"); // ecriture du node sujet + a.ecritureNodeEnXML(nodeSujet, "sujet","",false, "Sujet"); // ecriture du node sujet. Uniquement les nodes évalués. System.out.println(); - System.out.println("\tWriting of the \"sujet.xml\" file completed."); + System.out.println("\tUn nouveau fichier \"sujet.xml\" a été créé dans le dossier courant."); commandes.clotureApplication(); System.exit(0); } - //** Chargement du contenu du nouveau logo - if(commandes.newLogo && !commandes.nameSVG.isEmpty()) { - commandes.contenuFichierSVG= chargementFichierSVG(a,commandes.nameSVG); - } - - //** chargement du node translation qui se trouve dans le node setting - outils.chargeTraduction(nodeSujet.retourneFirstEnfantsByName("translation")); - try { + + //** Chargement du contenu du nouveau logo + if(commandes.newLogo && !commandes.nameSVG.isEmpty()) { + commandes.contenuFichierSVG= chargementFichierSVG(a,commandes.nameSVG); + } + + //** chargement du node translation qui se trouve dans le node setting + outils.chargeTraduction(nodeSujet.retourneFirstEnfantsByName("translation")); + // Charge les nouvelles tolérances du nombre de caractère et du texte pour la recherche et la comparaison des textes. if(nodeSujet.containElementByName("text:similarity")) { node similarity = nodeSujet.retourneFirstEnfantsByName("text:similarity"); @@ -116,19 +124,22 @@ public class meptl { if(color.getAttributs().get("tolerance_vert") != null) commandes.tolerance_vert= Integer.valueOf(color.getAttributs().get("tolerance_vert")); if(color.getAttributs().get("tolerance_bleu") != null) commandes.tolerance_bleu= Integer.valueOf(color.getAttributs().get("tolerance_bleu")); } + + //** Chargement et verification du CVS fourni + if(commandes.fourniCSV) { + nodeCSV = chargementFichierCSV(a, commandes.nameCSV); + } + + + }catch (Exception e) { System.out.println(e); } } - //** Nouveau node qui permet de convertir le fichier contenant la liste des étudiants en node. - node nodeCSV = null; - //** Chargement et verification du CVS fourni - if(commandes.fourniCSV) { - nodeCSV = chargementFichierCSV(a, commandes.nameCSV); - } + //** Vérification des historiques node verif = new node(); @@ -157,7 +168,6 @@ public class meptl { node ensembleanalyse = new node(); ensembleanalyse.setNomElt("analyses"); - for(int i = 0 ; i < nbFichierWriter ; i++) { //** Ne prends pas en compte le dossier destination créé par la commande -dest @@ -221,6 +231,7 @@ public class meptl { //a.ecritureNodeEnXML(ensembleanalyse, "ensembleAnalyse"); //écriture du node de l'étudiant } + //** bye bye analyseWriter commandes.clotureApplication(); } diff --git a/src/MEPTL/verificationFichierAnalyse.java b/src/MEPTL/verificationFichierAnalyse.java index 9f54ad5..cff980c 100644 --- a/src/MEPTL/verificationFichierAnalyse.java +++ b/src/MEPTL/verificationFichierAnalyse.java @@ -13,25 +13,23 @@ public class verificationFichierAnalyse { public verificationFichierAnalyse(node Sujet) throws CloneNotSupportedException{ if(Sujet==null) { System.out.println(); - System.out.println("**-** Error, the analysis file is null."); + System.out.println("**-** Erreur, le fichier d'analyse est null."); System.out.println(); clotureWithErrorInanalyzeFile(); } - //vérification des attributs du node fichier + //** Vérification des attributs du node fichier if(Sujet.getAttributs().size()>0) { verificationNodeFichier(Sujet.getAttributs()); }else { System.out.println(); - System.out.println("**-** ERROR in the analysis file."); - System.out.println("* The node \"fichier\" does not contain any attributes."); + System.out.println("**-** Erreur, le fichier d'analyse est vide."); System.out.println(); erreur=true; } - - //Vérification des attributs du node style:paragraph et vérification style de paragraphe par défaut + //** Vérification des attributs du node style:paragraph et vérification style de paragraphe par défaut if(Sujet.retourneEnfantsByNameExist("style:paragraph")) { verificationNodeEvaluate(Sujet.retourneFirstEnfantsByName("style:paragraph").getAttributs(),"style:paragraph"); if(Sujet.retourneFirstEnfantsByName("style:paragraph").retourneEnfantsByNameExist("style:default-style")) { @@ -105,12 +103,10 @@ public class verificationFichierAnalyse { private static void verificationNodeFichier(Dictionary attribut) { // le node fichier ne doit pas avoir un attribut addmenu="true" - if(attribut.get("addmenu")!=null) if(attribut.get("addmenu").equals("true")) { + if(attribut.get("addmenu")!=null) { System.out.println(); - System.out.println("**-** ERROR in the analysis file at node \"fichier\"."); - System.out.println("The \"fichier\" node must not have the attribute \"addmenu = true\"."); - System.out.println("This node not allowed to create a menu."); - System.out.println("Only main nodes can have this attribute with this value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"fichier\"."); + System.out.println("Le node \"fichier\" ne doit pas contenir l'attribut \"addmenu = true\"."); System.out.println(); erreur=true; } @@ -118,17 +114,17 @@ public class verificationFichierAnalyse { // le node fichier doit avoir l'attribut evaluer=true if(attribut.get("evaluer")==null) { System.out.println(); - System.out.println("**-** ERROR in the analysis file at node \"fichier\"."); - System.out.println("The \"fichier\" node must contain the attribute \"evaluer = true\"."); - System.out.println("This attribute has been deleted or has been renamed."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"fichier\"."); + System.out.println("Le node \"fichier\" doit contenir evaluer=\"true\"."); + System.out.println("l'attribut \"evaluer\" a été supprimé."); System.out.println(); erreur=true; }else { if(!attribut.get("evaluer").equals("true")) { System.out.println(); - System.out.println("**-** ERROR in the analysis file at node \"fichier\"."); - System.out.println("The \"fichier\" node must contain the attribute \"evaluer = true\"."); - System.out.println("The value of this attribute is not correct."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"fichier\"."); + System.out.println("Le node \"fichier\" doit contenir evaluer=\"true\"."); + System.out.println("La valeur doit être TRUE."); System.out.println(); erreur=true; } @@ -137,18 +133,19 @@ public class verificationFichierAnalyse { // le node fichier doit contenir l'attribut metaSujet et une valeur autre que le point d'interrogation ou vide if(attribut.get("metaSujet")==null) { System.out.println(); - System.out.println("**-** ERROR in the analysis file at node \"fichier\"."); - System.out.println("The \"fichier\" node must contain the attribute \"sujetMeta\"."); - System.out.println("This attribute has been deleted or has been renamed."); - System.out.println("This attribute must contain a value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"fichier\"."); + System.out.println("Le node \"fichier\" doit contenir l'attribut \"sujetMeta\"."); + System.out.println("L'attribut \"sujetMeta\" a été supprimé."); + System.out.println("Cet attribut doit contenir une valeur."); System.out.println(); erreur=true; }else { if(attribut.get("evaluer").equals("?") || attribut.get("evaluer").isEmpty() ) { System.out.println(); - System.out.println("**-** ERROR in the analysis file at node \"fichier\"."); - System.out.println("The \"sujetMeta\" node must contain a value other than \"?\" And not empty."); - System.out.println("In the custom properties of the ODF file, create the \"Sujet\" property and enter some text as the value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"fichier\"."); + System.out.println("L'attribut \"sujetMeta\" doit contenir une valeur autre que \"?\" ou vide."); + System.out.println("Dans les propriétés personnalisées des fichiers ODF, vous pouvez ajouter la propriété \"Sujet\" et faire correspondre à cette valeur."); + System.out.println("Voir la documentation d'analyseWriter."); System.out.println(); erreur=true; } @@ -170,17 +167,17 @@ public class verificationFichierAnalyse { if(attribut.get("addmenu")!=null) { if(!attribut.get("addmenu").equals("true")) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \""+ nameNode +"\"."); - System.out.println("The main node \"" + nameNode +"\" must contain the attribute \"addmenu=true\"."); - System.out.println("For this version, it is necessary to create a summary and a menu for the main nodes."); + System.out.println("**-** Erreur dans le fichier d'analyse. Dans le node \""+ nameNode +"\"."); + System.out.println("Le node principal \"" + nameNode +"\" doit contenir l'attribut \"addmenu=true\"."); + System.out.println("Pour cette version, Il est necessaire de créer un lien de menu du node principal,(tableau de syntèse des feedback)."); System.out.println(); erreur=true; } }else { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \""+ nameNode +"\"."); - System.out.println("The main node \"" + nameNode +"\" must contain the attribute \"addmenu=true\". This attribute has been deleted."); - System.out.println("For this version, it is necessary to create a summary and a menu for the main nodes."); + System.out.println("**-** Erreur dans le fichier d'analyse. Dans le node \""+ nameNode +"\"."); + System.out.println("Le node principal \"" + nameNode +"\" doit contenir l'attribut \"addmenu=true\". Cet attribut a été supprimé."); + System.out.println("Pour cette version, Il est necessaire de créer un lien de menu du node principal,(tableau de syntèse des feedback)."); System.out.println(); erreur=true; } @@ -203,9 +200,9 @@ public class verificationFichierAnalyse { String k = key.nextElement(); if(structure.getAttributs().get(k).contains("‽")) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"structurepage\"."); - System.out.println("The node " + nom + " must not have evaluated attributes."); - System.out.println("The node " + nom + " can have the attribut \"evaluer=true\" but any attributes values cannot contain \"‽\"."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"structurepage\"."); + System.out.println("Le node " + nom + " ne peut pas contenir des attributs évalués."); + System.out.println("Le node " + nom + " peut contenir l'attribut \"evaluer=true\" ce qui permettra l'évaluation des nodes enfants mais aucun attribut de ce node sera évalué."); System.out.println(); erreur= true; } @@ -229,10 +226,9 @@ public class verificationFichierAnalyse { String k = key.nextElement(); if(structure.getNodes().get(i).getAttributs().get(k).contains("‽")) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"structurepage\"."); - System.out.println("The node " + nom + " must not have evaluated attributes."); - System.out.println("The node " + nom + " can have the attribut \"evaluer=true\" but any attributes values cannot contain \"‽\"."); - System.out.println(); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"structurepage\"."); + System.out.println("Le node " + nom + " ne peut pas contenir des attributs évalués."); + System.out.println("Le node " + nom + " peut contenir l'attribut \"evaluer=true\" ce qui permettra l'évaluation des nodes enfants mais aucun attribut de ce node sera évalué."); System.out.println(); erreur= true; } @@ -252,8 +248,8 @@ public class verificationFichierAnalyse { if(setting.getAttributs().get("culture") != null) { if(!setting.getAttributs().get("culture").equals("FR")) { System.out.println(); - System.out.println("**-** WARNING in analysis file at node \"setting\"."); - System.out.println("The culture cannot be different than \"FR\"."); + System.out.println("**-** Avertissement dans le fichier d'analyse le node \"setting\"."); + System.out.println("La culture ne peutr pas être différent de \"FR\"."); System.out.println(); } } @@ -279,16 +275,24 @@ public class verificationFichierAnalyse { size = Long.valueOf(zip.getAttributs().get("size")); }catch (Exception e) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The zip size cannot be different from a numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("La taille du fichier doit être une valeur numérique."); System.out.println(); erreur=true; } if(size<1000000) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The zip size is too low."); - System.out.println("The zip size should be bigger than 1Mo."); + System.out.println("**-** Erreur dans le fichier d'analyse \"setting\"."); + System.out.println("La taille de l'archive ZIP est trop faible (supérieure à 1 000 000)."); + System.out.println("La taille doit être supérieure à 1Mo."); + System.out.println(); + erreur=true; + } + if(size>100000000) { + System.out.println(); + System.out.println("**-** Erreur dans le fichier d'analyse \"setting\"."); + System.out.println("La taille de l'archive ZIP est trop grande (inférieur à 100 000 000)."); + System.out.println("La taille doit être inférieure à 100Mo."); System.out.println(); erreur=true; } @@ -299,8 +303,8 @@ public class verificationFichierAnalyse { Matcher match= pt.matcher(name); if(match.find()) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The name of the zip cannot contain a special character."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nom de l'archive ne doit pas contenir de carcatères spéciaux."); System.out.println(); erreur=true; } @@ -315,15 +319,15 @@ public class verificationFichierAnalyse { number_match = Integer.valueOf(plagiarism.getAttributs().get("number_match")); }catch (Exception e) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The number of match must be a numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nombre de correspondance \"number_match\" doit être une valeur numérique."); System.out.println(); erreur=true; } if(number_match<0) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The number of matches must be a positive numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nombre de correspondance \"number_match\" doit être unevaleur positive."); System.out.println(); erreur=true; } @@ -335,15 +339,15 @@ public class verificationFichierAnalyse { mini_number_modification = Integer.valueOf(plagiarism.getAttributs().get("mini_number_modification")); }catch (Exception e) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The minimum number of modifications must be a numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nombre minimum de modification \"mini_number_modification\" doit être une valeur numérique."); System.out.println(); erreur=true; } if(mini_number_modification<-1) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The minimum number of modifications must be a positive numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nombre minimum de modification \"mini_number_modification\" doit être une valeur positive."); System.out.println(); erreur=true; } @@ -355,15 +359,15 @@ public class verificationFichierAnalyse { nombres_modifications_simultané_maxi = Integer.valueOf(plagiarism.getAttributs().get("nombres_modifications_simultané_maxi")); }catch (Exception e) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The nombres_modifications_simultané_maxi must be a numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nombre de modifications simultanées \"nombres_modifications_simultané_maxi\" doit être une valeur numérique."); System.out.println(); erreur=true; } if(nombres_modifications_simultané_maxi<0) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The nombres_modifications_simultané_maxi must be a positive numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("Le nombre de modifications simultanées \"nombres_modifications_simultané_maxi\" doit être une valeur positive."); System.out.println(); erreur=true; } @@ -381,15 +385,15 @@ public class verificationFichierAnalyse { tolerance_characters = Integer.valueOf(similarity.getAttributs().get("tolerance_characters")); }catch (Exception e) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The tolerance_characters is not an integer."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("La tolérance de catactère \"tolerance_characters\" n'est pas un entier."); System.out.println(); erreur=true; } if(tolerance_characters<0) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The tolerance_characters must be a positive numeric value."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("La tolérance de catactère \"tolerance_characters\" doit être une valeur positive."); System.out.println(); erreur=true; } @@ -400,15 +404,15 @@ public class verificationFichierAnalyse { tolerance_text = Double.valueOf(similarity.getAttributs().get("tolerance_text")); }catch (Exception e) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The tolerance_text is not a numeric."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("La tolérance sur le texte (similitude) \"tolerance_text\" doit être un numérique compris entre 0.01 et 0.99."); System.out.println(); erreur=true; } if(tolerance_text<0 || tolerance_text>1) { System.out.println(); - System.out.println("**-** ERROR in analysis file at node \"setting\"."); - System.out.println("The tolerance_text must be between 0.01 and 0.99."); + System.out.println("**-** Erreur dans le fichier d'analyse le node \"setting\"."); + System.out.println("La tolérance sur le texte (similitude) \"tolerance_text\" doit être un numérique compris entre 0.01 et 0.99."); System.out.println(); erreur=true; } @@ -416,10 +420,6 @@ public class verificationFichierAnalyse { } } - - - - } @@ -430,10 +430,10 @@ public class verificationFichierAnalyse { if(styleParagraphDefault.getAttributs().get("evaluer")!=null) { if(styleParagraphDefault.getAttributs().get("evaluer").equals("true")) { System.out.println(); - System.out.println("**-** WARNING in analysis file at node \"style:default-style\"."); - System.out.println("The node \"style:default-style\" must not contain \"evaluer=true\"."); - System.out.println("Default values are added to the different nodes \"style:style\" that are evaluated."); - System.out.println("Read the documentation about the node \"style:paragraph\"."); + System.out.println("**-** AVERTISSEMENT dans le fichier d'analyse, le node \"style:default-style\"."); + System.out.println("Le node \"style:default-style\" ne doit pas contenir l'attribut \"evaluer=true\"."); + System.out.println("Les valeurs par défaut dans les styles de paragraphe (les nodes \"style:style\") ont été ajouté."); + System.out.println("Lisez dans la documentation, les caractéristique du node principal \"style:paragraph\"."); System.out.println(); } }