private void generateAggregateReport()

in FlexPMD/flex-pmd-java/flex-pmd-metrics-maven-plugin/src/main/java/com/adobe/ac/pmd/metrics/maven/FlexMetricsReportMojo.java [284:334]


   private void generateAggregateReport( final Locale locale ) throws MavenReportException
   {
      final String basedir = project.getBasedir().toString();
      final String output = xmlOutputDirectory.toString();
      if ( getLog().isDebugEnabled() )
      {
         getLog().debug( "basedir: "
               + basedir );
         getLog().debug( "output: "
               + output );
      }
      String relative = null;
      if ( output.startsWith( basedir ) )
      {
         relative = output.substring( basedir.length() + 1 );
      }
      else
      {
         getLog().error( "Unable to aggregate report because I can't "
               + "determine the relative location of the XML report" );
         return;
      }
      getLog().debug( "relative: "
            + relative );
      final List< ModuleReport > reports = new ArrayList< ModuleReport >();

      if ( reactorProjects != null )
      {
         for ( final MavenProject mavenProject : reactorProjects )
         {
            final MavenProject child = mavenProject;
            final File xmlReport = new File( child.getBasedir() // NOPMD
                  + File.separator + relative, tempFileName );
            if ( xmlReport.exists() )
            {
               reports.add( new ModuleReport( child, loadDocument( xmlReport ) ) ); // NOPMD
            }
            else
            {
               getLog().debug( "xml file not found: "
                     + xmlReport );
            }
         }
         getLog().debug( "Aggregating "
               + reports.size() + " JavaNCSS reports" );

         new NcssAggregateReportGenerator( getSink(), getBundle(), getLog() ).doReport( locale,
                                                                                        reports,
                                                                                        lineThreshold );
      }
   }