org.apache.tools.ant.taskdefs.optional.dotnet
Class NetCommand

java.lang.Object
  extended by org.apache.tools.ant.taskdefs.optional.dotnet.NetCommand

public class NetCommand
extends java.lang.Object

This is a helper class to spawn net commands out. In its initial form it contains no .net specifics, just contains all the command line/exe construction stuff. However, it may be handy in future to have a means of setting the path to point to the dotnet bin directory; in which case the shared code should go in here.

Version:
0.5

Field Summary
protected  Commandline commandLine
          what is the command line
protected  Execute executable
          executable
protected  boolean failOnError
          flag to control action on execution trouble
protected  Task owner
          owner project
protected  java.lang.String program
          actual program to invoke
protected  java.lang.String title
          title of the command
protected  boolean traceCommandLine
          trace flag
 
Constructor Summary
NetCommand(Task owner, java.lang.String title, java.lang.String program)
          constructor
 
Method Summary
 void addArgument(java.lang.String argument)
          add an argument to a command line; do nothing if the arg is null or empty string
 void addArgument(java.lang.String argument1, java.lang.String argument2)
          concatenate two strings together and add them as a single argument, but only if argument2 is non-null and non-zero length
 void addArguments(java.lang.String[] arguments)
          add an argument to a command line; do nothing if the arg is null or empty string
 int getAutomaticResponseFileThreshold()
          getter for threshold
 boolean getFailFailOnError()
          query fail on error flag
 boolean isUseResponseFile()
          getter
protected  void logError(java.lang.String msg)
          error text log
protected  void logVerbose(java.lang.String msg)
          verbose text log
protected  void prepareExecutor()
          set up the command sequence..
 void runCommand()
          Run the command using the given Execute instance.
 int scanOneFileset(DirectoryScanner scanner, java.util.Hashtable filesToBuild, long outputTimestamp)
          scan through one fileset for files to include
 void setAutomaticResponseFileThreshold(int automaticResponseFileThreshold)
          set threshold for automatically using response files -use 0 for off
 void setDirectory(java.io.File directory)
          set the directory to run from, if the default is inadequate
 void setFailOnError(boolean b)
          set fail on error flag
 void setTraceCommandLine(boolean b)
          turn tracing on or off
 void setUseResponseFile(boolean useResponseFile)
          set this to true to always use the response file
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

owner

protected Task owner
owner project


executable

protected Execute executable
executable


commandLine

protected Commandline commandLine
what is the command line


title

protected java.lang.String title
title of the command


program

protected java.lang.String program
actual program to invoke


traceCommandLine

protected boolean traceCommandLine
trace flag


failOnError

protected boolean failOnError
flag to control action on execution trouble

Constructor Detail

NetCommand

public NetCommand(Task owner,
                  java.lang.String title,
                  java.lang.String program)
constructor

Parameters:
title - (for logging/errors)
owner - owner task
program - app we are to run
Method Detail

setTraceCommandLine

public void setTraceCommandLine(boolean b)
turn tracing on or off

Parameters:
b - trace flag

setFailOnError

public void setFailOnError(boolean b)
set fail on error flag

Parameters:
b - fail flag -set to true to cause an exception to be raised if the return value != 0

getFailFailOnError

public boolean getFailFailOnError()
query fail on error flag

Returns:
The failFailOnError value

setDirectory

public void setDirectory(java.io.File directory)
set the directory to run from, if the default is inadequate

Parameters:
directory - the directory to use.

logVerbose

protected void logVerbose(java.lang.String msg)
verbose text log

Parameters:
msg - string to add to log if verbose is defined for the build

logError

protected void logError(java.lang.String msg)
error text log

Parameters:
msg - message to display as an error

addArgument

public void addArgument(java.lang.String argument)
add an argument to a command line; do nothing if the arg is null or empty string

Parameters:
argument - The feature to be added to the Argument attribute

addArguments

public void addArguments(java.lang.String[] arguments)
add an argument to a command line; do nothing if the arg is null or empty string

Parameters:
arguments - The features to be added to the Argument attribute

addArgument

public void addArgument(java.lang.String argument1,
                        java.lang.String argument2)
concatenate two strings together and add them as a single argument, but only if argument2 is non-null and non-zero length

Parameters:
argument1 - The first argument
argument2 - The second argument

isUseResponseFile

public boolean isUseResponseFile()
getter

Returns:
response file state

setUseResponseFile

public void setUseResponseFile(boolean useResponseFile)
set this to true to always use the response file

Parameters:
useResponseFile - a boolean value.

getAutomaticResponseFileThreshold

public int getAutomaticResponseFileThreshold()
getter for threshold

Returns:
0 for disabled, or a threshold for enabling response files

setAutomaticResponseFileThreshold

public void setAutomaticResponseFileThreshold(int automaticResponseFileThreshold)
set threshold for automatically using response files -use 0 for off

Parameters:
automaticResponseFileThreshold - the threshold value to use.

prepareExecutor

protected void prepareExecutor()
set up the command sequence..


runCommand

public void runCommand()
                throws BuildException
Run the command using the given Execute instance.

Throws:
BuildException - if something goes wrong and the failOnError flag is true

scanOneFileset

public int scanOneFileset(DirectoryScanner scanner,
                          java.util.Hashtable filesToBuild,
                          long outputTimestamp)
scan through one fileset for files to include

Parameters:
scanner - the directory scanner to use.
filesToBuild - the map to place the files.
outputTimestamp - timestamp to compare against
Returns:
#of files out of date
To do:
should FAT granularity be included here?