@ Override public void executeReport ( final Locale locale ) throws MavenReportException { final Sink sink = getSink ( ) ; createReportHeader ( getBundle ( locale ) , sink ) ; final File [ ] sourceDirs = getSourceDirectories ( ) ; for ( final File sourceDir : sourceDirs ) { final GrammarInfo [ ] grammarInfos = scanForGrammars ( sourceDir ) ; if ( grammarInfos == null ) { getLog ( ) . debug ( "Skipping non-existing source directory: " + sourceDir ) ; } else { Arrays . sort ( grammarInfos , GrammarInfoComparator . getInstance ( ) ) ; for ( final GrammarInfo grammarInfo : grammarInfos ) { final File grammarFile = grammarInfo . getGrammarFile ( ) ; String relativeOutputFileName = grammarInfo . getRelativeGrammarFile ( ) ; relativeOutputFileName = relativeOutputFileName . replaceAll ( "(?i)\\.(jj|jjt|jtb)$" , getOutputFileExtension ( ) ) ; final File jjdocOutputFile = new File ( getJJDocOutputDirectory ( ) , relativeOutputFileName ) ; final JJDoc jjdoc = newJJDoc ( ) ; jjdoc . setInputFile ( grammarFile ) ; jjdoc . setOutputFile ( jjdocOutputFile ) ; try { jjdoc . run ( ) ; } catch ( final Exception e ) { throw new MavenReportException ( "Failed to create BNF documentation: " + grammarFile , e ) ; } createReportLink ( sink , sourceDir , grammarFile , relativeOutputFileName ) ; } } } createReportFooter ( sink ) ; sink . flush ( ) ; sink . close ( ) ; }
Run the actual report .