/** * If necessary create a new task. Otherwise return the current task. * * @param logger a logger. * @param synopsis short description of task. * @param release release. * @param defaultTask should this task become the default task? * @param ccmAddr current Synergy session ID. Used to run in multi-session. * @return Task number * @throws ScmException */ public int createTask( ScmLogger logger, String synopsis, String release, boolean defaultTask, String ccmAddr) throws ScmException { if (logger.isDebugEnabled()) { logger.debug("Synergy : Entering createTask method of SynergyTaskManager"); } switch (currentTaskState) { case TASK_STATE_CREATED: if (defaultTask) { // make sure the current task is the default task if (SynergyUtil.getDefaultTask(logger, ccmAddr) != currentTaskNumber) { SynergyUtil.setDefaultTask(logger, currentTaskNumber, ccmAddr); } } break; case TASK_STATE_NONE: // fall through case TASK_STATE_COMPLETED: currentTaskNumber = SynergyUtil.createTask(logger, synopsis, release, defaultTask, ccmAddr); currentTaskState = TASK_STATE_CREATED; break; default: throw new IllegalStateException( "Programming error: SynergyTaskManager is in unkown state."); } if (logger.isDebugEnabled()) { logger.debug("createTask returns " + currentTaskNumber); } return currentTaskNumber; }