FileDocCategorySizeDatePackage
CCMkdir.javaAPI DocApache Ant 1.707133Wed Dec 13 06:16:20 GMT 2006org.apache.tools.ant.taskdefs.optional.clearcase

CCMkdir

public class CCMkdir extends ClearCase
Performs ClearCase mkdir.

The following attributes are interpreted:
Attribute Values Required
viewpath Path to the ClearCase view directory that the command will operate on Yes
comment Specify a comment. Only one of comment or cfile may be used. No
commentfile Specify a file containing a comment. Only one of comment or cfile may be used. No
nocheckout Do not checkout after element creation No
failonerr Throw an exception if the command fails. Default is true No

Fields Summary
private String
mComment
private String
mCfile
private boolean
mNoco
public static final String
FLAG_COMMENT
-c flag -- comment to attach to the directory
public static final String
FLAG_COMMENTFILE
-cfile flag -- file containing a comment to attach to the directory
public static final String
FLAG_NOCOMMENT
-nc flag -- no comment is specified
public static final String
FLAG_NOCHECKOUT
-nco flag -- do not checkout element after creation
Constructors Summary
Methods Summary
private voidcheckOptions(org.apache.tools.ant.types.Commandline cmd)
Check the command line options.

        if (getComment() != null) {
            // -c
            getCommentCommand(cmd);
        } else {
            if (getCommentFile() != null) {
                // -cfile
                getCommentFileCommand(cmd);
            } else {
                cmd.createArgument().setValue(FLAG_NOCOMMENT);
            }
        }
        if (getNoCheckout()) {
            // -nco
            cmd.createArgument().setValue(FLAG_NOCHECKOUT);
        }
        // viewpath
        cmd.createArgument().setValue(getViewPath());
    
public voidexecute()
Executes the task.

Builds a command line to execute cleartool and then calls Exec's run method to execute the command line.

throws
BuildException if the command fails and failonerr is set to true


                                           
         
        Commandline commandLine = new Commandline();
        Project aProj = getProject();
        int result = 0;

        // Default the viewpath to basedir if it is not specified
        if (getViewPath() == null) {
            setViewPath(aProj.getBaseDir().getPath());
        }

        // build the command line from what we got. the format is
        // cleartool mkelem [options...] [viewpath ...]
        // as specified in the CLEARTOOL.EXE help
        commandLine.setExecutable(getClearToolCommand());
        commandLine.createArgument().setValue(COMMAND_MKDIR);

        checkOptions(commandLine);

        if (!getFailOnErr()) {
            getProject().log("Ignoring any errors that occur for: "
                    + getViewPathBasename(), Project.MSG_VERBOSE);
        }
        result = run(commandLine);
        if (Execute.isFailure(result) && getFailOnErr()) {
            String msg = "Failed executing: " + commandLine.toString();
            throw new BuildException(msg, getLocation());
        }
    
public java.lang.StringgetComment()
Get comment string

return
String containing the comment

        return mComment;
    
private voidgetCommentCommand(org.apache.tools.ant.types.Commandline cmd)
Get the 'comment' command

param
cmd containing the command line string with or without the comment flag and string appended

        if (getComment() != null) {
            /* Had to make two separate commands here because if a space is
               inserted between the flag and the value, it is treated as a
               Windows filename with a space and it is enclosed in double
               quotes ("). This breaks clearcase.
            */
            cmd.createArgument().setValue(FLAG_COMMENT);
            cmd.createArgument().setValue(getComment());
        }
    
public java.lang.StringgetCommentFile()
Get comment file

return
String containing the path to the comment file

        return mCfile;
    
private voidgetCommentFileCommand(org.apache.tools.ant.types.Commandline cmd)
Get the 'commentfile' command

param
cmd containing the command line string with or without the commentfile flag and file appended

        if (getCommentFile() != null) {
            /* Had to make two separate commands here because if a space is
               inserted between the flag and the value, it is treated as a
               Windows filename with a space and it is enclosed in double
               quotes ("). This breaks clearcase.
            */
            cmd.createArgument().setValue(FLAG_COMMENTFILE);
            cmd.createArgument().setValue(getCommentFile());
        }
    
public booleangetNoCheckout()
Get no checkout flag status

return
boolean containing status of noco flag

        return mNoco;
    
public voidsetComment(java.lang.String comment)
Sets the comment string.

param
comment the comment string

        mComment = comment;
    
public voidsetCommentFile(java.lang.String cfile)
Specifies a file containing a comment.

param
cfile the path to the comment file

        mCfile = cfile;
    
public voidsetNoCheckout(boolean co)
If true, do not checkout element after creation.

param
co the status to set the flag to

        mNoco = co;