Subversion Repositories DevTools

Rev

Rev 882 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.erggroup.buildtool.daemon;

import com.erggroup.buildtool.ripple.ReleaseManager;

import org.apache.log4j.Logger;

/**Enumeration of supported run levels
 */
public class RunLevel
{
  /**enumeration
   * @attribute
   */
  public static final RunLevel CANNOT_CONTINUE = new RunLevel( ReleaseManager.DB_CANNOT_CONTINUE );

  /**enumeration
   * @attribute
   */
  public static final RunLevel PAUSED = new RunLevel( ReleaseManager.DB_PAUSED );

  /**enumeration
   * @attribute
   */
  public static final RunLevel ACTIVE = new RunLevel( ReleaseManager.DB_ACTIVE );

  /**enumeration
   * @attribute
   */
  public static final RunLevel IDLE = new RunLevel( ReleaseManager.DB_IDLE );

  /**enumeration
   * @attribute
   */
  public static final RunLevel WAITING = new RunLevel( ReleaseManager.DB_WAITING );

  /**enumeration
   * @attribute
   */
  public static final RunLevel PUBLISHING = new RunLevel( ReleaseManager.DB_PUBLISHING );

  /**Logger
   * @attribute
   */
  private static final Logger mLogger = Logger.getLogger(RunLevel.class);

  /**integer value
   * @attribute
   */
  private final int mLevel;

  /**constructor
   */
  private RunLevel(int level)
  {
    mLevel = level;
  }

  /**updates (advertises) the run level in the database
   * refer to sequence diagrams
   */
  public void persist(ReleaseManager releaseManager, int rcon_id) throws Exception
  {
    mLogger.debug("persist " + rcon_id + " " + mLevel);
    releaseManager.updateCurrentRunLevel(rcon_id, mLevel, false);
  }

  /**inserts (advertises) the run level in the database
   * refer to sequence diagrams
   */
  public void persistNew(ReleaseManager releaseManager, int rcon_id) throws Exception
  {
    mLogger.debug("persistNew " + rcon_id + " " + mLevel);
    releaseManager.updateCurrentRunLevel(rcon_id, mLevel, true);
  }
}