code: @Override
      @SuppressWarnings( "deprecation" )
      public void generate( org.codehaus.doxia.sink.Sink sink, Locale locale )
          throws MavenReportException
      {
          boolean canGenerateNonAggregatedReport = canGenerateNonAggregatedReport();
          boolean canGenerateAggregatedReport = canGenerateAggregatedReport();
          boolean canAttachAggregatedReportToSite = canAttachAggregatedReportToSite();
  
          if ( canAttachAggregatedReportToSite && !( canGenerateNonAggregatedReport || canGenerateAggregatedReport ) )
          {
              return; // aggregated report for top level project is generated by last reactor project
          }
  
          try
          {
              long ts = System.currentTimeMillis();
  
              // If top-level project is last reactor project it should generate ONLY aggregated report here
              if ( canGenerateNonAggregatedReport )
              {
                  generateReports();
              }
  
              // Aggregated report must be generated in last reactor project. It may be top-level
              // project (this is very rare case) or any other project.
              // Whatever project it is, it must generate report in top-level project's site directory.
              // WARNING: Last reactor project cannot have scoverage generation skipped
              // ('skip' configuration parameter set)!
              if ( canGenerateAggregatedReport )
              {
                  generateAggregatedReports();
              }
  
              long te = System.currentTimeMillis();
              getLog().debug( String.format( "Mojo execution time: %d ms", te - ts ) );
          }
          catch ( MavenReportException e )
          {
              if ( failOnError )
              {
                  throw e;
              }
              getLog().error( "Error while creating scoverage report: " + e.getMessage(), e );
          }
          catch ( RuntimeException e )
          {
              if ( failOnError )
              {
                  throw new MavenReportException( "Report generation exception", e );
              }
              getLog().error( "Error while creating scoverage report: " + e.getMessage(), e );
          }
      }
docs: {@inheritDoc}