/** * L'analyse complète consiste en : * * <ul> * <li>Lancement du parsing sur l'application * <li>Création des rapports * <li>Création des beans à partir des rapports * <li>Transformation des beans en beans persistants * <li>Persistance des beans * </ul> * * A la fin de l'analyse on effectue les opérations de cloture de tache * * @throws TaskException Si un problème d'exécution apparaît. */ public void execute() throws TaskException { try { initialize(); LOGGER.info( McCabeMessages.getString("logs.analyzing") + mProject.getParent().getName() + " - " + mProject.getName()); int resultParse = parseSource(); if (0 == resultParse) { // Si le parsing s'est bien déroulé, on génère les rapports // Creation de la base de rapports createSpcFile(mConfiguration); String reportName = null; for (int i = 0; i < mConfiguration.getReports().size(); i++) { // Pour chaque nom de rapport configurés dans le fichier de configuration // McCabe, on va le créer, le parser et le mapper sur les objets reportName = (String) mConfiguration.getReports().get(i); createReport(reportName); } // On parse maintenant les rapports for (int i = 0; i < mConfiguration.getReports().size(); i++) { // Pour chaque nom de rapport configurés dans le fichier de configuration // McCabe, on va le créer, le parser et le mapper sur les objets reportName = (String) mConfiguration.getReports().get(i); parseReport(reportName); } // Une fois que tous les rapports ont été générés et parsés, // on peut générer les résultats de niveau projet persistProjectResult(); } // positionne les données sur la taille du file System affectFileSystemSize(mConfiguration.getSubWorkspace(), true); // Lance les opérations de cloture de la tâche FileUtility.deleteRecursively(mConfiguration.getSubWorkspace()); if (0 != resultParse) { // Si le parsing ne s'est pas bien déroulé, on lance une exception throw new Exception(McCabeMessages.getString("exception.parsing_error")); } if (mErrorWriter != null) { mErrorWriter.close(); } } catch (Exception e) { throw new TaskException(e); } }