summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ObjectRunner.scala
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2006-06-15 16:22:40 +0000
committermichelou <michelou@epfl.ch>2006-06-15 16:22:40 +0000
commit42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d (patch)
treee7dfd190ffee58e665170f290b3c1b86a358f044 /src/compiler/scala/tools/nsc/ObjectRunner.scala
parentaf68b2f871a990297c2168d3fe9219393915d463 (diff)
downloadscala-42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d.tar.gz
scala-42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d.tar.bz2
scala-42bd0dce6c2ad1881ad3df16ea19b02b43ec9f6d.zip
added header and svn:keywords to files *Generic...
added header and svn:keywords to files *Generic*.scala
Diffstat (limited to 'src/compiler/scala/tools/nsc/ObjectRunner.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ObjectRunner.scala23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/ObjectRunner.scala b/src/compiler/scala/tools/nsc/ObjectRunner.scala
index 5649fcbc05..cf636af7ab 100644
--- a/src/compiler/scala/tools/nsc/ObjectRunner.scala
+++ b/src/compiler/scala/tools/nsc/ObjectRunner.scala
@@ -1,15 +1,23 @@
+/* NSC -- new Scala compiler
+ * Copyright 2005-2006 LAMP/EPFL
+ * @author Lex Spoon
+ */
+
+// $Id$
+
package scala.tools.nsc
-import java.net.URLClassLoader
+
import java.io.File
import java.lang.reflect.{Method,Modifier}
+import java.net.URLClassLoader
/** An object that runs another object specified by name. */
object ObjectRunner {
+
def isMainMethod(meth: Method): Boolean = {
- def paramsOK(params: Array[Class]): Boolean = {
- (params.length == 1) &&
- (params(0) == classOf[Array[String]])
- }
+ def paramsOK(params: Array[Class]): Boolean =
+ params.length == 1 &&
+ params(0) == classOf[Array[String]]
meth.getName == "main" &&
Modifier.isStatic(meth.getModifiers) &&
paramsOK(meth.getParameterTypes)
@@ -21,11 +29,12 @@ object ObjectRunner {
arguments: Seq[String]): Unit =
{
val classpathURLs = classpath.map(s => new File(s).toURL).toArray
- val mainLoader = new URLClassLoader(classpathURLs, null)
+ val mainLoader = new URLClassLoader(classpathURLs, null)
val clsToRun = Class.forName(objectName, true, mainLoader)
val method = clsToRun.getMethods.find(isMainMethod) match {
- case Some(meth) => meth
+ case Some(meth) =>
+ meth
case None => {
throw new Error("no main method in object " + objectName)
}