net.sf.antcontrib.cpptasks

Class CUtil

public class CUtil extends Object

Some utilities used by the CC and Link tasks.

Author: Adam Murdoch Curt Arnold

Nested Class Summary
static classCUtil.StringArrayBuilder
A class that splits a white-space, comma-separated list into a String array.
Field Summary
static intFILETIME_EPSILON
Method Summary
static voidaddAll(Vector dest, Object[] src)
Adds the elements of the array to the given vector
static intcheckDirectoryArray(String[] names)
Checks a array of names for non existent or non directory entries and nulls them out.
static StringgetBasename(File file)
Extracts the basename of a file, removing the extension, if present
static FilegetExecutableLocation(String exeName)
Gets the parent directory for the executable file name using the current directory and system executable path
static StringgetParentPath(String path)
Extracts the parent of a file
static File[]getPathFromEnvironment(String envVariable, String delim)
Returns an array of File for each existing directory in the specified environment variable
static StringgetRelativePath(String base, File targetFile)
Returns a relative path for the targetFile relative to the base directory.
static booleanisActive(Project p, String ifCond, String unlessCond)
static booleanisSignificantlyAfter(long time1, long time2)
Determines whether time1 is later than time2 to a degree that file system time truncation is not significant.
static booleanisSignificantlyBefore(long time1, long time2)
Determines whether time1 is earlier than time2 to a degree that file system time truncation is not significant.
static booleanisSystemPath(File source)
Determines if source file has a system path, that is part of the compiler or platform.
static File[]parsePath(String path, String delim)
Parse a string containing directories into an File[]
static intrunCommand(CCTask task, File workingDir, String[] cmdline, boolean newEnvironment, Environment env)
This method is exposed so test classes can overload and test the arguments without actually spawning the compiler
static booleansameList(Object[] a, Object[] b)
Compares the contents of 2 arrays for equaliy.
static booleansameList(Vector v, Object[] a)
Compares the contents of an array and a Vector for equality.
static booleansameSet(Object[] a, Vector b)
Compares the contents of an array and a Vector for set equality.
static String[]toArray(Vector src)
Converts a vector to a string array.
static StringtoUnixPath(String path)
static StringtoWindowsPath(String path)
static StringxmlAttribEncode(String attrValue)
Replaces any embedded quotes in the string so that the value can be placed in an attribute in an XML file

Field Detail

FILETIME_EPSILON

public static final int FILETIME_EPSILON

Method Detail

addAll

public static void addAll(Vector dest, Object[] src)
Adds the elements of the array to the given vector

checkDirectoryArray

public static int checkDirectoryArray(String[] names)
Checks a array of names for non existent or non directory entries and nulls them out.

Returns: Count of non-null elements

getBasename

public static String getBasename(File file)
Extracts the basename of a file, removing the extension, if present

getExecutableLocation

public static File getExecutableLocation(String exeName)
Gets the parent directory for the executable file name using the current directory and system executable path

Parameters: exeName Name of executable such as "cl.exe"

Returns: parent directory or null if not located

getParentPath

public static String getParentPath(String path)
Extracts the parent of a file

getPathFromEnvironment

public static File[] getPathFromEnvironment(String envVariable, String delim)
Returns an array of File for each existing directory in the specified environment variable

Parameters: envVariable environment variable name such as "LIB" or "INCLUDE" delim delimitor used to separate parts of the path, typically ";" or ":"

Returns: array of File's for each part that is an existing directory

getRelativePath

public static String getRelativePath(String base, File targetFile)
Returns a relative path for the targetFile relative to the base directory.

Parameters: base base directory as returned by File.getCanonicalPath() targetFile target file

Returns: relative path of target file. Returns targetFile if there were no commonalities between the base and the target

isActive

public static boolean isActive(Project p, String ifCond, String unlessCond)

isSignificantlyAfter

public static boolean isSignificantlyAfter(long time1, long time2)
Determines whether time1 is later than time2 to a degree that file system time truncation is not significant.

Parameters: time1 long first time value time2 long second time value

Returns: boolean if first time value is later than second time value. If the values are within the rounding error of the file system return false.

isSignificantlyBefore

public static boolean isSignificantlyBefore(long time1, long time2)
Determines whether time1 is earlier than time2 to a degree that file system time truncation is not significant.

Parameters: time1 long first time value time2 long second time value

Returns: boolean if first time value is earlier than second time value. If the values are within the rounding error of the file system return false.

isSystemPath

public static boolean isSystemPath(File source)
Determines if source file has a system path, that is part of the compiler or platform.

Parameters: source source, may not be null.

Returns: true is source file appears to be system library and its path should be discarded.

parsePath

public static File[] parsePath(String path, String delim)
Parse a string containing directories into an File[]

Parameters: path path string, for example ".;c:\something\include" delim delimiter, typically ; or :

runCommand

public static int runCommand(CCTask task, File workingDir, String[] cmdline, boolean newEnvironment, Environment env)
This method is exposed so test classes can overload and test the arguments without actually spawning the compiler

sameList

public static boolean sameList(Object[] a, Object[] b)
Compares the contents of 2 arrays for equaliy.

sameList

public static boolean sameList(Vector v, Object[] a)
Compares the contents of an array and a Vector for equality.

sameSet

public static boolean sameSet(Object[] a, Vector b)
Compares the contents of an array and a Vector for set equality. Assumes input array and vector are sets (i.e. no duplicate entries)

toArray

public static String[] toArray(Vector src)
Converts a vector to a string array.

toUnixPath

public static String toUnixPath(String path)

toWindowsPath

public static String toWindowsPath(String path)

xmlAttribEncode

public static String xmlAttribEncode(String attrValue)
Replaces any embedded quotes in the string so that the value can be placed in an attribute in an XML file

Parameters: attrValue value to be expressed

Returns: equivalent attribute literal

Copyright ? 2001-2011 Ant-Contrib project. All Rights Reserved.