/* sbt -- Simple Build Tool
 * Copyright 2009, 2010  Mark Harrah
 */
package sbt

import java.io.File

final case class Exit(code: Int) extends xsbti.Exit {
  require(code >= 0)
}
final case class Reboot(scalaVersion: String, argsList: Seq[String], app: xsbti.ApplicationID, baseDirectory: File) extends xsbti.Reboot {
  def arguments = argsList.toArray
}
final case class ApplicationID(groupID: String, name: String, version: String, mainClass: String, components: Seq[String], crossVersionedValue: xsbti.CrossValue, extra: Seq[File]) extends xsbti.ApplicationID {
  def mainComponents = components.toArray
  def classpathExtra = extra.toArray
  def crossVersioned = crossVersionedValue != xsbti.CrossValue.Disabled
}
object ApplicationID {
  def apply(delegate: xsbti.ApplicationID, newVersion: String): ApplicationID =
    apply(delegate).copy(version = newVersion)
  def apply(delegate: xsbti.ApplicationID): ApplicationID =
    ApplicationID(delegate.groupID, delegate.name, delegate.version, delegate.mainClass, delegate.mainComponents, delegate.crossVersionedValue, delegate.classpathExtra)
}