コード例 #1
0
  /**
   * 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);
    }
  }