Package org.codehaus.groovy.tools

# Class FileSystemCompiler

java.lang.Object
org.codehaus.groovy.tools.FileSystemCompiler

public class FileSystemCompiler extends Object
Command-line compiler (aka. `groovyc`).

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `FileSystemCompiler.CompilationOptions`
  Command-line options accepted by the `groovyc` launcher.
  `static class`
  `FileSystemCompiler.VersionProvider`
  Supplies version text for the `groovyc` command line.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileSystemCompiler(CompilerConfiguration configuration)`
  Creates a file-system compiler using the supplied configuration.
  `FileSystemCompiler(CompilerConfiguration configuration, CompilationUnit cu)`
  Creates a file-system compiler using the supplied configuration and optional prebuilt compilation unit.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static int`
  `checkFiles(String[] filenames)`
  Counts unreadable or missing source files in the supplied list.
  `static void`
  `commandLineCompile(String[] args)`
  Same as main(args) except that exceptions are thrown out instead of causing the VM to exit.
  `static void`
  `commandLineCompile(String[] args, boolean lookupUnnamedFiles)`
  Same as main(args) except that exceptions are thrown out instead of causing the VM to exit and the lookup for .groovy files can be controlled
  `static void`
  `commandLineCompileWithErrorHandling(String[] args, boolean lookupUnnamedFiles)`
  Primary entry point for compiling from the command line (using the groovyc script).
  `void`
  `compile(File[] files)`
  Compiles the supplied source files.
  `void`
  `compile(String[] paths)`
  Compiles the sources at the supplied paths.
  `static CommandLine`
  `configureParser(FileSystemCompiler.CompilationOptions options)`
  Creates and configures the command-line parser for compilation options.
  `static void`
  `deleteRecursive(File file)`
  Deletes the supplied file or directory tree if it exists.
  `static void`
  `displayHelp()`
  Prints the usage help message for `FileSystemCompiler.CompilationOptions` to stderr.
  `static void`
  `displayHelp(PrintWriter writer)`
  Prints the usage help message for the `FileSystemCompiler.CompilationOptions` to the specified PrintWriter.
  `static void`
  `displayVersion()`
  Prints version information to stderr.
  `static void`
  `displayVersion(PrintWriter writer)`
  Prints version information to the specified PrintWriter.
  `static void`
  `doCompilation(CompilerConfiguration configuration, CompilationUnit unit, String[] filenames)`
  Compiles the supplied source files using the given configuration.
  `static void`
  `doCompilation(CompilerConfiguration configuration, CompilationUnit unit, String[] filenames, boolean lookupUnnamedFiles)`
  Compiles the supplied source files using the given configuration and controls whether unnamed Groovy sources are searched relative to the provided file list.
  `static void`
  `doCompilation(CompilerConfiguration configuration, CompilationUnit unit, String[] filenames, boolean lookupUnnamedFiles, Writer warningWriter)`
  Compiles the supplied source files, optionally displaying any warnings collected during a successful compilation.
  `static void`
  `main(String[] args)`
  Primary entry point for compiling from the command line (using the groovyc script).
  `static boolean`
  `validateFiles(String[] filenames)`
  Returns whether all supplied file names resolve to readable files.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### FileSystemCompiler

    public FileSystemCompiler(CompilerConfiguration configuration) throws ConfigurationException
    Creates a file-system compiler using the supplied configuration.
    Parameters:
      `configuration` - the compiler configuration to apply
    Throws:
      `ConfigurationException` - if the compilation unit cannot be created

  - ### FileSystemCompiler

    public FileSystemCompiler(CompilerConfiguration configuration, CompilationUnit cu) throws ConfigurationException
    Creates a file-system compiler using the supplied configuration and optional prebuilt compilation unit.
    Parameters:
      `configuration` - the compiler configuration to apply
      `cu` - an existing compilation unit to reuse, or `null` to build a suitable one
    Throws:
      `ConfigurationException` - if the compilation unit cannot be created

- ## Method Details

  - ### displayHelp

    public static void displayHelp()
    Prints the usage help message for `FileSystemCompiler.CompilationOptions` to stderr.
    Since:
      2.5
    See Also:
      - `displayHelp(PrintWriter)`

  - ### displayHelp

    public static void displayHelp(PrintWriter writer)
    Prints the usage help message for the `FileSystemCompiler.CompilationOptions` to the specified PrintWriter.
    Since:
      2.5

  - ### displayVersion

    public static void displayVersion()
    Prints version information to stderr.
    See Also:
      - `displayVersion(PrintWriter)`

  - ### displayVersion

    public static void displayVersion(PrintWriter writer)
    Prints version information to the specified PrintWriter.
    Since:
      2.5

  - ### checkFiles

    public static int checkFiles(String[] filenames)
    Counts unreadable or missing source files in the supplied list.
    Parameters:
      `filenames` - the file names to validate
    Returns:
      the number of invalid file entries

  - ### validateFiles

    public static boolean validateFiles(String[] filenames)
    Returns whether all supplied file names resolve to readable files.
    Parameters:
      `filenames` - the file names to validate
    Returns:
      `true` if every file exists and can be read

  - ### commandLineCompile

    public static void commandLineCompile(String[] args) throws Exception
    Same as main(args) except that exceptions are thrown out instead of causing the VM to exit.
    Throws:
      `Exception`

  - ### commandLineCompile

    public static void commandLineCompile(String[] args, boolean lookupUnnamedFiles) throws Exception
    Same as main(args) except that exceptions are thrown out instead of causing the VM to exit and the lookup for .groovy files can be controlled
    Throws:
      `Exception`

  - ### configureParser

    public static CommandLine configureParser(FileSystemCompiler.CompilationOptions options)
    Creates and configures the command-line parser for compilation options.
    Parameters:
      `options` - the options object to bind parser results to
    Returns:
      the configured parser

  - ### main

    public static void main(String[] args)
    Primary entry point for compiling from the command line (using the groovyc script).

    If calling inside a process and you don't want the JVM to exit on an error call commandLineCompile(String[]), which this method simply wraps

    Parameters:
      `args` - command line arguments

  - ### commandLineCompileWithErrorHandling

    public static void commandLineCompileWithErrorHandling(String[] args, boolean lookupUnnamedFiles)
    Primary entry point for compiling from the command line (using the groovyc script).

    If calling inside a process and you don't want the JVM to exit on an error call commandLineCompile(String[]), which this method simply wraps

    Parameters:
      `args` - command line arguments
      `lookupUnnamedFiles` - do a lookup for .groovy files not part of the given list of files to compile

  - ### doCompilation

    public static void doCompilation(CompilerConfiguration configuration, CompilationUnit unit, String[] filenames) throws Exception
    Compiles the supplied source files using the given configuration.
    Parameters:
      `configuration` - the compiler configuration to use
      `unit` - an existing compilation unit to reuse, or `null`
      `filenames` - the source files to compile
    Throws:
      `Exception` - if compilation fails

  - ### doCompilation

    public static void doCompilation(CompilerConfiguration configuration, CompilationUnit unit, String[] filenames, boolean lookupUnnamedFiles) throws Exception
    Compiles the supplied source files using the given configuration and controls whether unnamed Groovy sources are searched relative to the provided file list.
    Parameters:
      `configuration` - the compiler configuration to use
      `unit` - an existing compilation unit to reuse, or `null`
      `filenames` - the source files to compile
      `lookupUnnamedFiles` - whether to search for unnamed Groovy sources beside the listed files
    Throws:
      `Exception` - if compilation fails

  - ### doCompilation

    public static void doCompilation(CompilerConfiguration configuration, CompilationUnit unit, String[] filenames, boolean lookupUnnamedFiles, Writer warningWriter) throws Exception
    Compiles the supplied source files, optionally displaying any warnings collected during a successful compilation.

    Warning display is opt-in via `warningWriter` rather than hard-wired to `System.err`, so that this shared entry point does not impose console output on embedders (e.g. the in-process Ant `<groovyc>` task) that route diagnostics their own way or read the `ErrorCollector` directly. The `groovyc` command line supplies a `System.err` writer; other callers pass `null`.

    Parameters:
      `configuration` - the compiler configuration to use
      `unit` - an existing compilation unit to reuse, or `null`
      `filenames` - the source files to compile
      `lookupUnnamedFiles` - whether to search for unnamed Groovy sources beside the listed files
      `warningWriter` - where to write warnings collected on a successful compile, or `null` to leave warning handling to the caller
    Throws:
      `Exception` - if compilation fails
    Since:
      6.0.0

  - ### deleteRecursive

    public static void deleteRecursive(File file)
    Deletes the supplied file or directory tree if it exists.
    Parameters:
      `file` - the file or directory to delete

  - ### compile

    public void compile(String[] paths) throws Exception
    Compiles the sources at the supplied paths.
    Parameters:
      `paths` - the source paths to compile
    Throws:
      `Exception` - if compilation fails

  - ### compile

    public void compile(File[] files) throws Exception
    Compiles the supplied source files.
    Parameters:
      `files` - the source files to compile
    Throws:
      `Exception` - if compilation fails