cleanup in launcher

This commit is contained in:
Mark Harrah 2010-02-05 19:06:44 -05:00
parent 743d4556ae
commit f131fb3108
4 changed files with 9 additions and 7 deletions

View File

@ -55,12 +55,12 @@ class ConfigurationParser extends NotNull
def check(map: ListMap[String, _], label: String): Unit = if(map.isEmpty) () else error(map.keys.mkString("Invalid " + label + "(s): ", ",",""))
def check[T](label: String, pair: (T, ListMap[String, _])): T = { check(pair._2, label); pair._1 }
def id(map: LabelMap, name: String, default: String): (String, LabelMap) =
(getOrNone(map, name).getOrElse(default), map - name)
def getOrNone[K,V](map: ListMap[K,Option[V]], k: K) = map.get(k).getOrElse(None)
(orElse(getOrNone(map, name), default), map - name)
def getOrNone[K,V](map: ListMap[K,Option[V]], k: K) = orElse(map.get(k), None)
def ids(map: LabelMap, name: String, default: List[String]) =
{
val result = map(name).map(value => trim(value.split(",")).filter(isNonEmpty)).getOrElse(default)
(result, map - name)
val result = map(name).map(value => trim(value.split(",")).filter(isNonEmpty))
(orElse(result, default), map - name)
}
def bool(map: LabelMap, name: String, default: Boolean): (Boolean, LabelMap) =
{
@ -70,7 +70,7 @@ class ConfigurationParser extends NotNull
def toFiles(paths: List[String]): List[File] = paths.map(toFile)
def toFile(path: String): File = new File(path.replace('/', File.separatorChar))// if the path is relative, it will be resolved by Launch later
def file(map: LabelMap, name: String, default: File): (File, LabelMap) =
(getOrNone(map, name).map(toFile).getOrElse(default), map - name)
(orElse(getOrNone(map, name).map(toFile), default), map - name)
def getBoot(m: LabelMap): BootSetup =
{

View File

@ -27,7 +27,7 @@ sealed class ListMap[K,V] private(backing: List[(K,V)]) extends Iterable[(K,V)]
}
object ListMap
{
def apply[K,V](pairs: (K,V)*) = (empty[K,V] /: pairs)(_ + _)
def apply[K,V](pairs: (K,V)*) = new ListMap[K,V](pairs.toList.removeDuplicates)
def empty[K,V] = new ListMap[K,V](Nil)
private def remove[K,V](backing: List[(K,V)], k: K) = backing.filter(_._1 != k)
}

View File

@ -38,4 +38,6 @@ object Pre
n
}
def array(files: File*): Array[File] = toArray(files.toList)
/* Saves creating a closure for default if it has already been evaluated*/
def orElse[T](opt: Option[T], default: T) = if(opt.isDefined) opt.get else default
}

View File

@ -4,7 +4,7 @@ import java.io.{Closeable, File, FileInputStream, FileOutputStream, InputStream,
object Using extends NotNull
{
def apply[R <: Closeable,T](create: => R)(f: R => T): T = withResource(create)(f)
def apply[R <: Closeable,T](create: R)(f: R => T): T = withResource(create)(f)
def withResource[R <: Closeable,T](r: R)(f: R => T): T = try { f(r) } finally { r.close() }
}