aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/scala/org/perl8/test/harness/package.scala
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-23 17:13:27 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-23 17:13:27 -0600
commit739a7f0ec6c1995c25b9e1eb06a2ed99e1cad450 (patch)
tree3b70c2c6311ed88fe3759632474cc1f875d52116 /src/main/scala/org/perl8/test/harness/package.scala
parentf09a5885afc7f79886a6a0cc251f3506b74dd7eb (diff)
downloadscala-test-more-739a7f0ec6c1995c25b9e1eb06a2ed99e1cad450.tar.gz
scala-test-more-739a7f0ec6c1995c25b9e1eb06a2ed99e1cad450.zip
clean up imports
Diffstat (limited to 'src/main/scala/org/perl8/test/harness/package.scala')
-rw-r--r--src/main/scala/org/perl8/test/harness/package.scala21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/scala/org/perl8/test/harness/package.scala b/src/main/scala/org/perl8/test/harness/package.scala
new file mode 100644
index 0000000..a5641e8
--- /dev/null
+++ b/src/main/scala/org/perl8/test/harness/package.scala
@@ -0,0 +1,21 @@
+package org.perl8.test
+
+package object harness {
+ import scala.reflect.{ClassTag,classTag}
+
+ def loadClass[T: ClassTag] (className: String): Class[_] =
+ classTag[T].runtimeClass.getClassLoader.loadClass(className)
+
+ def newInstance[T: ClassTag] (className: String): T =
+ loadClass[T](className).newInstance.asInstanceOf[T]
+
+ def newInstance[T: ClassTag, U <: AnyRef: ClassTag] (
+ className: String,
+ arg: U
+ ): T = {
+ val classObj = loadClass[T](className)
+ val argClassObj = classTag[U].runtimeClass
+ val constructor = classObj.getConstructor(argClassObj)
+ constructor.newInstance(arg).asInstanceOf[T]
+ }
+}