t

scala.tools.nsc.classpath

DirectoryLookup

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
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DirectoryLookup
  2. EfficientClassPath
  3. ClassPath
  4. AnyRef
  5. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract type F

Abstract Value Members

  1. abstract def asClassPathStrings: Seq[String]
    Definition Classes
    ClassPath
  2. 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
  3. abstract def asURLs: Seq[URL]
    Definition Classes
    ClassPath
  4. abstract def createFileEntry(file: AbstractFile): FileEntryType
    Attributes
    protected
  5. abstract val dir: F
  6. abstract def emptyFiles: Array[F]
    Attributes
    protected
  7. 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
  8. abstract def getName(f: F): String
    Attributes
    protected
  9. abstract def getSubDir(dirName: String): Option[F]
    Attributes
    protected
  10. abstract def hasChild(dir: F, name: String): Boolean
    Attributes
    protected
  11. abstract def isMatchingFile(f: F, siblingExists: (String) => Boolean): Boolean
    Attributes
    protected
  12. abstract def isPackage(f: F): Boolean
    Attributes
    protected
  13. abstract def listChildren(dir: F, filter: Option[(F) => Boolean] = None): Array[F]
    Attributes
    protected
  14. abstract def toAbstractFile(f: F): AbstractFile
    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toany2stringadd[DirectoryLookup[FileEntryType]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (DirectoryLookup[FileEntryType], B)
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toArrowAssoc[DirectoryLookup[FileEntryType]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. def asClassPathString: String

    The whole classpath in the form of one String.

    The whole classpath in the form of one String.

    Definition Classes
    ClassPath
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. final def classes(inPackage: String): Seq[ClassFileEntry]
    Definition Classes
    ClassPath
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  10. def ensuring(cond: (DirectoryLookup[FileEntryType]) => Boolean, msg: => Any): DirectoryLookup[FileEntryType]
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toEnsuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (DirectoryLookup[FileEntryType]) => Boolean): DirectoryLookup[FileEntryType]
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toEnsuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: => Any): DirectoryLookup[FileEntryType]
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toEnsuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): DirectoryLookup[FileEntryType]
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toEnsuring[DirectoryLookup[FileEntryType]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  16. def files(inPackage: PackageName): Seq[FileEntryType]
    Attributes
    protected
  17. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  18. 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
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. final def hasPackage(pkg: String): Boolean
    Definition Classes
    ClassPath
  21. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. final def list(inPackage: String): ClassPathEntries
    Definition Classes
    ClassPath
  24. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  27. final def packages(inPackage: String): Seq[PackageEntry]
    Definition Classes
    ClassPath
  28. final def sources(inPackage: String): Seq[SourceFileEntry]
    Definition Classes
    ClassPath
  29. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  30. def toString(): String
    Definition Classes
    AnyRef → Any
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Deprecated Value Members

  1. def asClasspathString: String
    Definition Classes
    ClassPath
    Annotations
    @deprecated
    Deprecated

    (Since version 2.11.5) use asClassPathString instead of this one

  2. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toStringFormat[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 of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  3. def [B](y: B): (DirectoryLookup[FileEntryType], B)
    Implicit
    This member is added by an implicit conversion from DirectoryLookup[FileEntryType] toArrowAssoc[DirectoryLookup[FileEntryType]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from EfficientClassPath

Inherited from ClassPath

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromDirectoryLookup[FileEntryType] to any2stringadd[DirectoryLookup[FileEntryType]]

Inherited by implicit conversion StringFormat fromDirectoryLookup[FileEntryType] to StringFormat[DirectoryLookup[FileEntryType]]

Inherited by implicit conversion Ensuring fromDirectoryLookup[FileEntryType] to Ensuring[DirectoryLookup[FileEntryType]]

Inherited by implicit conversion ArrowAssoc fromDirectoryLookup[FileEntryType] to ArrowAssoc[DirectoryLookup[FileEntryType]]

Ungrouped