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

CCMkelem

public class CCMkelem extends ClearCase
Performs ClearCase mkelem.

The following attributes are interpreted:
Attribute Values Required
viewpath Path to the ClearCase view file or 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
nowarn Suppress warning messages No
nocheckout Do not checkout after element creation No
checkin Checkin element after creation No
preservetime Preserve the modification time (for checkin) No
master Assign mastership of the main branch to the current site No
eltype Element type to use during 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
mNwarn
private boolean
mPtime
private boolean
mNoco
private boolean
mCheckin
private boolean
mMaster
private String
mEltype
public static final String
FLAG_COMMENT
-c flag -- comment to attach to the file
public static final String
FLAG_COMMENTFILE
-cfile flag -- file containing a comment to attach to the file
public static final String
FLAG_NOCOMMENT
-nc flag -- no comment is specified
public static final String
FLAG_NOWARN
-nwarn flag -- suppresses warning messages
public static final String
FLAG_PRESERVETIME
-ptime flag -- preserves the modification time on checkin
public static final String
FLAG_NOCHECKOUT
-nco flag -- do not checkout element after creation
public static final String
FLAG_CHECKIN
-ci flag -- checkin element after creation
public static final String
FLAG_MASTER
-master flag -- change mastership of main branch to current site
public static final String
FLAG_ELTYPE
-eltype flag -- element type to use during 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 (getNoWarn()) {
            // -nwarn
            cmd.createArgument().setValue(FLAG_NOWARN);
        }
        /*
         * Should choose either -ci or -nco.
         */
        if (getNoCheckout() && getCheckin()) {
            throw new BuildException("Should choose either [nocheckout | checkin]");
        }
        if (getNoCheckout()) {
            // -nco
            cmd.createArgument().setValue(FLAG_NOCHECKOUT);
        }
        if (getCheckin()) {
            // -ci
            cmd.createArgument().setValue(FLAG_CHECKIN);
            if (getPreserveTime()) {
                // -ptime
                cmd.createArgument().setValue(FLAG_PRESERVETIME);
            }
        }
        if (getMaster()) {
            // -master
            cmd.createArgument().setValue(FLAG_MASTER);
        }
        if (getEltype() != null) {
            // -eltype
            getEltypeCommand(cmd);
        }
        // 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_MKELEM);

        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 booleangetCheckin()
Get ci flag status

return
boolean containing status of ci flag

        return mCheckin;
    
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 java.lang.StringgetEltype()
Get element type

return
String containing the element type

        return mEltype;
    
private voidgetEltypeCommand(org.apache.tools.ant.types.Commandline cmd)
Get the 'element type' command

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

        if (getEltype() != 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_ELTYPE);
            cmd.createArgument().setValue(getEltype());
        }
    
public booleangetMaster()
Get master flag status

return
boolean containing status of master flag

        return mMaster;
    
public booleangetNoCheckout()
Get no checkout flag status

return
boolean containing status of noco flag

        return mNoco;
    
public booleangetNoWarn()
Get nowarn flag status

return
boolean containing status of nwarn flag

        return mNwarn;
    
public booleangetPreserveTime()
Get preservetime flag status

return
boolean containing status of preservetime flag

        return mPtime;
    
public voidsetCheckin(boolean ci)
If true, checkin the element after creation

param
ci the status to set the flag to

        mCheckin = ci;
    
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 voidsetEltype(java.lang.String eltype)
Specifies the element type to use.

param
eltype to create element

        mEltype = eltype;
    
public voidsetMaster(boolean master)
If true, changes mastership of the main branch to the current site

param
master the status to set the flag to

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

param
co the status to set the flag to

        mNoco = co;
    
public voidsetNoWarn(boolean nwarn)
If true, suppress warning messages.

param
nwarn the status to set the flag to

        mNwarn = nwarn;
    
public voidsetPreserveTime(boolean ptime)
If true, preserve the modification time.

param
ptime the status to set the flag to

        mPtime = ptime;