trait DirectoryLookup[FileEntryType <: ClassRepresentation] extends EfficientClassPath
A trait allowing to look for classpath entries in directories. It provides common logic for classes handling class and source files. It makes use of the fact that in the case of nested directories it's easy to find a file when we have a name of a package. It abstracts over the file representation to work with both JFile and AbstractFile.
- Source
- DirectoryClassPath.scala
- Alphabetic
- By Inheritance
- DirectoryLookup
- EfficientClassPath
- ClassPath
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Type Members
- abstract type F
Abstract Value Members
-
abstract
def
asClassPathStrings: Seq[String]
- Definition Classes
- ClassPath
-
abstract
def
asSourcePathString: String
The whole sourcepath in the form of one String.
The whole sourcepath in the form of one String.
- Definition Classes
- ClassPath
-
abstract
def
asURLs: Seq[URL]
- Definition Classes
- ClassPath
-
abstract
def
createFileEntry(file: AbstractFile): FileEntryType
- Attributes
- protected
- abstract val dir: F
-
abstract
def
emptyFiles: Array[F]
- Attributes
- protected
-
abstract
def
findClassFile(className: String): Option[AbstractFile]
Returns the classfile for an external name, e.g., "java.lang.String".
Returns the classfile for an external name, e.g., "java.lang.String". This method does not return source files.
This method is used by the classfile parser. When parsing a Java class, its own inner classes are entered with a
ClassfileLoader
that parses the classfile returned by this method. It is also used in the backend, by the inliner, to obtain the bytecode when inlining from the classpath. It's also used by scalap.- Definition Classes
- ClassPath
-
abstract
def
getName(f: F): String
- Attributes
- protected
-
abstract
def
getSubDir(dirName: String): Option[F]
- Attributes
- protected
-
abstract
def
isMatchingFile(f: F): Boolean
- Attributes
- protected
-
abstract
def
isPackage(f: F): Boolean
- Attributes
- protected
-
abstract
def
listChildren(dir: F, filter: Option[(F) ⇒ Boolean] = None): Array[F]
- Attributes
- protected
-
abstract
def
toAbstractFile(f: F): AbstractFile
- Attributes
- protected
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
+(other: String): String
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to any2stringadd[DirectoryLookup[FileEntryType]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
-
def
->[B](y: B): (DirectoryLookup[FileEntryType], B)
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to ArrowAssoc[DirectoryLookup[FileEntryType]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
asClassPathString: String
The whole classpath in the form of one String.
The whole classpath in the form of one String.
- Definition Classes
- ClassPath
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
final
def
classes(inPackage: String): Seq[ClassFileEntry]
- Definition Classes
- ClassPath
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
ensuring(cond: (DirectoryLookup[FileEntryType]) ⇒ Boolean, msg: ⇒ Any): DirectoryLookup[FileEntryType]
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to Ensuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: (DirectoryLookup[FileEntryType]) ⇒ Boolean): DirectoryLookup[FileEntryType]
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to Ensuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean, msg: ⇒ Any): DirectoryLookup[FileEntryType]
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to Ensuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
def
ensuring(cond: Boolean): DirectoryLookup[FileEntryType]
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to Ensuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
files(inPackage: PackageName): Seq[FileEntryType]
- Attributes
- protected
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
findClass(className: String): Option[ClassRepresentation]
Returns the class file and / or source file for a given external name, e.g., "java.lang.String".
Returns the class file and / or source file for a given external name, e.g., "java.lang.String". If there is both a class file and source file, the compiler can decide whether to read the class file or compile the source file.
Internally this seems to be used only by
ScriptRunner
, but only to call.isDefined
. That could probably be implemented differently.Externally, it is used by sbt's compiler interface: https://github.com/sbt/sbt/blob/v0.13.15/compile/interface/src/main/scala/xsbt/CompilerInterface.scala#L249 Jason has some improvements for that in the works (https://github.com/scala/bug/issues/10289#issuecomment-310022699)
- Definition Classes
- ClassPath
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
hasPackage(pkg: String): Boolean
- Definition Classes
- ClassPath
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
list(inPackage: String): ClassPathEntries
- Definition Classes
- ClassPath
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
packages(inPackage: String): Seq[PackageEntry]
- Definition Classes
- ClassPath
-
final
def
sources(inPackage: String): Seq[SourceFileEntry]
- Definition Classes
- ClassPath
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
→[B](y: B): (DirectoryLookup[FileEntryType], B)
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to ArrowAssoc[DirectoryLookup[FileEntryType]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Deprecated Value Members
-
def
asClasspathString: String
- Definition Classes
- ClassPath
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.5) use asClassPathString instead of this one
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from DirectoryLookup[FileEntryType] to StringFormat[DirectoryLookup[FileEntryType]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
The Scala compiler and reflection APIs.