eu.lindenbaum.maven.util
Class FileUtils

java.lang.Object
  extended by eu.lindenbaum.maven.util.FileUtils

public final class FileUtils
extends Object

Containing utilities related to file handling.

Author:
Tobias Schlager

Field Summary
static FileFilter APP_FILTER
          Filename filter to filter app files (.app & .appup).
static FileFilter BEAM_FILTER
          Filename filter to filter compiled files (.beam).
static Predicate<File> FILE_PRED
          a Predicate that checks a file for null and existance
static FileFilter NULL_FILTER
          a FileFilter accepting all input
static FileFilter REL_FILTER
          Filename filter to filter rel files (.rel).
static FileFilter SNMP_FILTER
          Filename filter to filter snmp files (.mib, .bin & .funcs).
static FileFilter SOURCE_FILTER
          Filename filter to filter source files (.erl & .hrl).
 
Constructor Summary
FileUtils()
           
 
Method Summary
static int copyDirectory(File from, File to, FileFilter filter)
          Copies the contents of the source directory recursively into the destination directory.
static int copyDirectory(File from, File to, FileFilter filter, Map<String,String> replacements)
          Copies the contents of the source directory recursively into the destination directory.
static void extractFilesFromJar(File archive, String suffix, File destDir)
          Extracts all files from a .jar file matching the given file suffix into a directory.
static List<File> getDependencies(File root)
          Return the list of the module-version/ebin/ paths in the given directory.
static List<File> getDependencyIncludes(File root)
          Return the list of the module-version/include/ paths in the given directory.
static List<File> getDirectoriesNonRecursive(File root, FileFilter filter)
          Returns a list of all found filtered directories in the specified root path.By default patterns from FileUtils.getDefaultExcludes() will always be excluded.
static List<File> getDirectoriesRecursive(File root, FileFilter filter)
          Get a List of directories matching the given filter.
static List<File> getFilesAndDirectoriesRecursive(File root, FileFilter filter)
          Returns a list of all found filterend (sub) files and directories.
static List<File> getFilesRecursive(File root, String suffix)
          Get a List of files matching the given file extension (excluding directories).
static FileFilter getSuffixFilter(String[] suffixes)
          Returns a FileFilter which only accepts files ending with one of the given suffixes.
static boolean newerFilesThan(File dir, File reference)
          Returns whether there are newer files in a specific directory (recursive) than a given reference file.
static void removeDirectory(File directory)
          Removes a directory recursively.
static int removeFilesRecursive(File root, String suffix)
          Removes all files ending with a specific suffix recursively from a directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SOURCE_FILTER

public static final FileFilter SOURCE_FILTER
Filename filter to filter source files (.erl & .hrl). Directories are always accepted.


APP_FILTER

public static final FileFilter APP_FILTER
Filename filter to filter app files (.app & .appup). Directories are always accepted.


REL_FILTER

public static final FileFilter REL_FILTER
Filename filter to filter rel files (.rel). Directories are always accepted.


SNMP_FILTER

public static final FileFilter SNMP_FILTER
Filename filter to filter snmp files (.mib, .bin & .funcs). Directories are always accepted.


BEAM_FILTER

public static final FileFilter BEAM_FILTER
Filename filter to filter compiled files (.beam). Directories are always accepted.


NULL_FILTER

public static FileFilter NULL_FILTER
a FileFilter accepting all input


FILE_PRED

public static Predicate<File> FILE_PRED
a Predicate that checks a file for null and existance

Constructor Detail

FileUtils

public FileUtils()
Method Detail

getSuffixFilter

public static FileFilter getSuffixFilter(String[] suffixes)
Returns a FileFilter which only accepts files ending with one of the given suffixes. The suffixes may be of the for .java or java. Directories will always be accepted.

Parameters:
suffixes - list of accepted suffixes
Returns:
a new FileFilter

getFilesRecursive

public static List<File> getFilesRecursive(File root,
                                           String suffix)
Get a List of files matching the given file extension (excluding directories). By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to start recursion from
suffix - file extension to match, can be e.g. eiter ".erl" or "erl"
Returns:
a List of found files

removeFilesRecursive

public static int removeFilesRecursive(File root,
                                       String suffix)
Removes all files ending with a specific suffix recursively from a directory. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to remove specific files from
suffix - file suffixes to remove
Returns:
the number of removed files

removeDirectory

public static void removeDirectory(File directory)
Removes a directory recursively.

Parameters:
directory - to remove

getDirectoriesRecursive

public static List<File> getDirectoriesRecursive(File root,
                                                 FileFilter filter)
Get a List of directories matching the given filter. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to start recursion from
filter - used to filter directories
Returns:
a List of found directories

getFilesAndDirectoriesRecursive

public static List<File> getFilesAndDirectoriesRecursive(File root,
                                                         FileFilter filter)
Returns a list of all found filterend (sub) files and directories. In case a sub directory is excluded all of its sub files are also excluded. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to start recursion from
filter - used to filter the found files and directories
Returns:
a List of found files and directories

getDirectoriesNonRecursive

public static List<File> getDirectoriesNonRecursive(File root,
                                                    FileFilter filter)
Returns a list of all found filtered directories in the specified root path.By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to search in
filter - used to filter the found directories
Returns:
a List of found directories

getDependencies

public static List<File> getDependencies(File root)
Return the list of the module-version/ebin/ paths in the given directory. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to start the scan from
Returns:
a list of matching Files

getDependencyIncludes

public static List<File> getDependencyIncludes(File root)
Return the list of the module-version/include/ paths in the given directory. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
root - directory to start the scan from
Returns:
a list of matching Files

copyDirectory

public static int copyDirectory(File from,
                                File to,
                                FileFilter filter)
                         throws org.apache.maven.plugin.MojoExecutionException
Copies the contents of the source directory recursively into the destination directory. The source directory must exist. All missing directories including the destination folder will be created if necessary, already existing files will be overwritten. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
from - the source directory to copy from
to - the destination directory to copy to
filter - additional filter to apply before copying
Returns:
the number of copied files
Throws:
org.apache.maven.plugin.MojoExecutionException
See Also:
getFilesAndDirectoriesRecursive(File, FileFilter)

copyDirectory

public static int copyDirectory(File from,
                                File to,
                                FileFilter filter,
                                Map<String,String> replacements)
                         throws org.apache.maven.plugin.MojoExecutionException
Copies the contents of the source directory recursively into the destination directory. The source directory must exist. All missing directories including the destination folder will be created if necessary, already existing files will be overwritten. The given replacements will be applied to all found files. It is assumed that all files are UTF-8 encoded. By default patterns from FileUtils.getDefaultExcludes() will always be excluded.

Parameters:
from - the source directory to copy from
to - the destination directory to copy to
filter - additional filter to apply before copying
replacements - a Map of String patterns to be replaced
Returns:
the number of copied files
Throws:
org.apache.maven.plugin.MojoExecutionException
See Also:
getFilesAndDirectoriesRecursive(File, FileFilter)

newerFilesThan

public static boolean newerFilesThan(File dir,
                                     File reference)
Returns whether there are newer files in a specific directory (recursive) than a given reference file.

Parameters:
dir - input directory to check
reference - the file taken as reference time (modified)
Returns:
true if there are .erl/.hrl files newer than the reference file

extractFilesFromJar

public static void extractFilesFromJar(File archive,
                                       String suffix,
                                       File destDir)
                                throws org.apache.maven.plugin.MojoExecutionException
Extracts all files from a .jar file matching the given file suffix into a directory.

Parameters:
archive - the jar archive to extract files from
suffix - of files to be extracted
destDir - to extract files into
Throws:
org.apache.maven.plugin.MojoExecutionException


Copyright © 2010 Lindenbaum GmbH. All Rights Reserved.