org.codehaus.mojo.javacc

Class AbstractJavaCCMojo

public abstract class AbstractJavaCCMojo extends AbstractMojo

Provides common services for all mojos that compile JavaCC grammar files.

Version: $Id: AbstractJavaCCMojo.java 10774 2009-09-26 11:40:48Z bentmann $

Author: jruiz@exist.com jesse

Method Summary
protected voidcopyGrammarOutput(File sourceRoot, String packageName, File tempDirectory, String updatePattern)
Scans the filesystem for output files and copies them to the specified compile source root.
protected voiddeleteTempDirectory(File tempDirectory)
Deletes the specified temporary directory.
voidexecute()
Execute the tool.
protected abstract File[]getCompileSourceRoots()
Gets all the output directories to register with the project for compilation.
protected abstract String[]getExcludes()
Gets a set of Ant-like exclusion patterns used to unselect files from the source directory for processing.
protected StringgetGrammarEncoding()
Gets the file encoding of the grammar files.
protected abstract String[]getIncludes()
Gets a set of Ant-like inclusion patterns used to select files from the source directory for processing.
protected BooleangetIsStatic()
Gets the flag whether to generate static parser.
protected StringgetJdkVersion()
Gets the Java version for which to generate source code.
protected abstract FilegetOutputDirectory()
Gets the absolute path to the directory where the generated Java files for the parser will be stored.
protected StringgetParserPackage()
Gets the package into which the generated parser files should be stored.
protected abstract FilegetSourceDirectory()
Gets the absolute path to the directory where the grammar files are located.
protected abstract intgetStaleMillis()
Gets the granularity in milliseconds of the last modification date for testing whether a source needs recompilation.
protected FilegetTempDirectory()
Gets a temporary directory within the project's build directory.
protected booleanisSourceRoot(File directory)
Determines whether the specified directory denotes a compile source root of the current project.
protected JavaCCnewJavaCC()
Creates a new facade to invoke JavaCC.
protected abstract voidprocessGrammar(GrammarInfo grammarInfo)
Passes the specified grammar file through the tool.

Method Detail

copyGrammarOutput

protected void copyGrammarOutput(File sourceRoot, String packageName, File tempDirectory, String updatePattern)
Scans the filesystem for output files and copies them to the specified compile source root. An output file is only copied to the compile source root if it doesn't already exist in another compile source root. This prevents duplicate class errors during compilation in case the user provided customized files in src/main/java or similar.

Parameters: packageName The name of the destination package for the output files, must not be null. sourceRoot The (absolute) path to the compile source root into which the output files should eventually be copied, must not be null. tempDirectory The (absolute) path to the directory to scan for generated output files, must not be null. updatePattern A glob pattern that matches the (simple) names of those files which should always be updated in case we are outputting directly into src/main/java, may be null. A leading "!" may be used to negate the pattern.

Throws: MojoExecutionException If the output files could not be copied.

deleteTempDirectory

protected void deleteTempDirectory(File tempDirectory)
Deletes the specified temporary directory.

Parameters: tempDirectory The directory to delete, must not be null.

execute

public void execute()
Execute the tool.

Throws: MojoExecutionException If the invocation of the tool failed. MojoFailureException If the tool reported a non-zero exit code.

getCompileSourceRoots

protected abstract File[] getCompileSourceRoots()
Gets all the output directories to register with the project for compilation.

Returns: The compile source roots to register with the project, never null.

getExcludes

protected abstract String[] getExcludes()
Gets a set of Ant-like exclusion patterns used to unselect files from the source directory for processing.

Returns: A set of Ant-like inclusion patterns used to unselect files from the source directory for processing, can be null if no files should be excluded.

getGrammarEncoding

protected String getGrammarEncoding()
Gets the file encoding of the grammar files.

Returns: The file encoding of the grammar files or null if the user did not specify this mojo parameter.

getIncludes

protected abstract String[] getIncludes()
Gets a set of Ant-like inclusion patterns used to select files from the source directory for processing.

Returns: A set of Ant-like inclusion patterns used to select files from the source directory for processing, can be null if all files should be included.

getIsStatic

protected Boolean getIsStatic()
Gets the flag whether to generate static parser.

Returns: The flag whether to generate static parser, will be null if the user did not specify this mojo parameter.

getJdkVersion

protected String getJdkVersion()
Gets the Java version for which to generate source code.

Returns: The Java version for which to generate source code, will be null if the user did not specify this mojo parameter.

getOutputDirectory

protected abstract File getOutputDirectory()
Gets the absolute path to the directory where the generated Java files for the parser will be stored.

Returns: The absolute path to the directory where the generated Java files for the parser will be stored, never null.

getParserPackage

protected String getParserPackage()
Gets the package into which the generated parser files should be stored.

Returns: The package into which the generated parser files should be stored, can be null to use the package declaration from the grammar file.

getSourceDirectory

protected abstract File getSourceDirectory()
Gets the absolute path to the directory where the grammar files are located.

Returns: The absolute path to the directory where the grammar files are located, never null.

getStaleMillis

protected abstract int getStaleMillis()
Gets the granularity in milliseconds of the last modification date for testing whether a source needs recompilation.

Returns: The granularity in milliseconds of the last modification date for testing whether a source needs recompilation.

getTempDirectory

protected File getTempDirectory()
Gets a temporary directory within the project's build directory.

Returns: The path to the temporary directory, never null.

isSourceRoot

protected boolean isSourceRoot(File directory)
Determines whether the specified directory denotes a compile source root of the current project.

Parameters: directory The directory to check, must not be null.

Returns: true if the specified directory is a compile source root of the project, false otherwise.

newJavaCC

protected JavaCC newJavaCC()
Creates a new facade to invoke JavaCC. Most options for the invocation are derived from the current values of the corresponding mojo parameters. The caller is responsible to set the input file and output directory on the returned facade.

Returns: The facade for the tool invocation, never null.

processGrammar

protected abstract void processGrammar(GrammarInfo grammarInfo)
Passes the specified grammar file through the tool.

Parameters: grammarInfo The grammar info describing the grammar file to process, must not be null.

Throws: MojoExecutionException If the invocation of the tool failed. MojoFailureException If the tool reported a non-zero exit code.

Copyright © 2005-2010 Codehaus. All Rights Reserved.