FileDocCategorySizeDatePackage
CCMCreateTask.javaAPI DocApache Ant 1.708948Wed Dec 13 06:16:18 GMT 2006org.apache.tools.ant.taskdefs.optional.ccm

CCMCreateTask

public class CCMCreateTask extends Continuus implements org.apache.tools.ant.taskdefs.ExecuteStreamHandler
Creates new Continuus ccm task and sets it as the default.
ant.task
name="ccmcreatetask" category="scm"

Fields Summary
private String
comment
private String
platform
private String
resolver
private String
release
private String
subSystem
private String
task
public static final String
FLAG_COMMENT
/comment -- comments associated to the task
public static final String
FLAG_PLATFORM
/platform flag -- target platform
public static final String
FLAG_RESOLVER
/resolver flag
public static final String
FLAG_RELEASE
/release flag
public static final String
FLAG_SUBSYSTEM
/release flag
public static final String
FLAG_TASK
-task flag -- associate checkout task with task
Constructors Summary
public CCMCreateTask()
Constructor for CCMCreateTask.


            
      
        super();
        setCcmAction(COMMAND_CREATE_TASK);
    
Methods Summary
private voidcheckOptions(org.apache.tools.ant.types.Commandline cmd)
Check the command line options.

        if (getComment() != null) {
            cmd.createArgument().setValue(FLAG_COMMENT);
            cmd.createArgument().setValue("\"" + getComment() + "\"");
        }

        if (getPlatform() != null) {
            cmd.createArgument().setValue(FLAG_PLATFORM);
            cmd.createArgument().setValue(getPlatform());
        } // end of if ()

        if (getResolver() != null) {
            cmd.createArgument().setValue(FLAG_RESOLVER);
            cmd.createArgument().setValue(getResolver());
        } // end of if ()

        if (getSubSystem() != null) {
            cmd.createArgument().setValue(FLAG_SUBSYSTEM);
            cmd.createArgument().setValue("\"" + getSubSystem() + "\"");
        } // end of if ()

        if (getRelease() != null) {
            cmd.createArgument().setValue(FLAG_RELEASE);
            cmd.createArgument().setValue(getRelease());
        } // end of if ()
    
public voidexecute()
Executes the task.

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

throws
BuildException on error

        Commandline commandLine = new Commandline();
        int result = 0;

        // build the command line from what we got the format
        // as specified in the CCM.EXE help
        commandLine.setExecutable(getCcmCommand());
        commandLine.createArgument().setValue(getCcmAction());

        checkOptions(commandLine);

        result = run(commandLine, this);
        if (Execute.isFailure(result)) {
            String msg = "Failed executing: " + commandLine.toString();
            throw new BuildException(msg, getLocation());
        }

        //create task ok, set this task as the default one
        Commandline commandLine2 = new Commandline();
        commandLine2.setExecutable(getCcmCommand());
        commandLine2.createArgument().setValue(COMMAND_DEFAULT_TASK);
        commandLine2.createArgument().setValue(getTask());

        log(commandLine.describeCommand(), Project.MSG_DEBUG);

        result = run(commandLine2);
        if (result != 0) {
            String msg = "Failed executing: " + commandLine2.toString();
            throw new BuildException(msg, getLocation());
        }

    
public java.lang.StringgetComment()
Get the value of comment.

return
value of comment.

        return comment;
    
public java.lang.StringgetPlatform()
Get the value of platform.

return
value of platform.

        return platform;
    
public java.lang.StringgetRelease()
Get the value of release.

return
value of release.

        return release;
    
public java.lang.StringgetResolver()
Get the value of resolver.

return
value of resolver.

        return resolver;
    
public java.lang.StringgetSubSystem()
Get the value of subSystem.

return
value of subSystem.

        return subSystem;
    
public java.lang.StringgetTask()
Get the value of task.

return
value of task.

        return task;
    
public voidsetComment(java.lang.String v)
Specifies a comment.

param
v Value to assign to comment.

        this.comment = v;
    
public voidsetPlatform(java.lang.String v)
Specifies the target platform.

param
v Value to assign to platform.

        this.platform = v;
    
public voidsetProcessErrorStream(java.io.InputStream is)

param
is the input stream
exception
java.io.IOException on error

        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        String s = reader.readLine();
        if (s != null) {
            log("err " + s, Project.MSG_DEBUG);
        } // end of if ()
    
public voidsetProcessInputStream(java.io.OutputStream param1)

param
param1 the output stream
exception
java.io.IOException on error

    
public voidsetProcessOutputStream(java.io.InputStream is)
read the output stream to retrieve the new task number.

param
is InputStream
throws
IOException on error


        String buffer = "";
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            buffer = reader.readLine();
            if (buffer != null) {
                log("buffer:" + buffer, Project.MSG_DEBUG);
                String taskstring = buffer.substring(buffer.indexOf(' ")).trim();
                taskstring = taskstring.substring(0, taskstring.lastIndexOf(' ")).trim();
                setTask(taskstring);
                log("task is " + getTask(), Project.MSG_DEBUG);
            } // end of if ()
        } catch (NullPointerException npe) {
            log("error procession stream , null pointer exception", Project.MSG_ERR);
            npe.printStackTrace();
            throw new BuildException(npe.getClass().getName());
        } catch (Exception e) {
            log("error procession stream " + e.getMessage(), Project.MSG_ERR);
            throw new BuildException(e.getMessage());
        } // end of try-catch

    
public voidsetRelease(java.lang.String v)
Specify the CCM release.

param
v Value to assign to release.

        this.release = v;
    
public voidsetResolver(java.lang.String v)
Specifies the resolver.

param
v Value to assign to resolver.

        this.resolver = v;
    
public voidsetSubSystem(java.lang.String v)
Specifies the subsystem.

param
v Value to assign to subSystem.

        this.subSystem = v;
    
public voidsetTask(java.lang.String v)
Specifies the task number used to checkin the file (may use 'default').

param
v Value to assign to task.

        this.task = v;
    
public voidstart()

throws
IOException on error



    // implementation of org.apache.tools.ant.taskdefs.ExecuteStreamHandler interface

             
         
    
public voidstop()