summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala')
-rw-r--r--src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala b/src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala
index 716358a653..d0a0b17494 100644
--- a/src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala
+++ b/src/compiler/scala/tools/nsc/io/ClassAndJarInfo.scala
@@ -6,7 +6,7 @@
package scala.tools.nsc
package io
-import java.net.URL
+import java.net.{ URL, URLClassLoader }
import java.io.IOException
import collection.JavaConverters._
@@ -14,18 +14,20 @@ import collection.JavaConverters._
* a given Class object and similar common tasks.
*/
class ClassAndJarInfo[T: ClassManifest] {
- val man = classManifest[T]
- def clazz = man.erasure
+ val man = classManifest[T]
+ def clazz = man.erasure
+ def internalName = clazz.getName.replace('.', '/')
+
+ def resourceURL = new URLClassLoader(Array[URL]()) getResource internalName + ".class"
def baseOfPath(path: String) = path indexOf '!' match {
- case -1 => path stripSuffix internalClassName
+ case -1 => path stripSuffix internalName + ".class"
case idx => path take idx
}
+ def simpleClassName = clazz.getName split """[$.]""" last
def classUrl = clazz getResource simpleClassName + ".class"
def codeSource = protectionDomain.getCodeSource()
- def internalClassName = internalName + ".class"
- def internalName = clazz.getName.replace('.', '/')
def jarManifest = (
try new JManifest(jarManifestUrl.openStream())
catch { case _: IOException => new JManifest() }
@@ -39,5 +41,4 @@ class ClassAndJarInfo[T: ClassManifest] {
def rootFromLocation = Path(locationUrl.toURI.getPath())
def rootFromResource = Path(baseOfPath(classUrl.getPath) stripPrefix "file:")
def rootPossibles = Iterator(rootFromResource, rootFromLocation)
- def simpleClassName = clazz.getName split """[$.]""" last
}