case class AggregateClassPath
extends ClassPath

A classpath unifying multiple class- and sourcepath entries. The Classpath can obtain entries for classes and sources independently so it tries to do operations quite optimally - iterating only these collections which are needed in the given moment and only as far as it's necessary.

Constructors

AggregateClassPath ( aggregates: Seq [ ClassPath ] )

Members

val aggregates : Seq [ ClassPath ]
def _1 : T1
override def asClassPathStrings : Seq [ String ]
override def asSourcePathString : String

The whole sourcepath in the form of one String.

The whole sourcepath in the form of one String.

override def asURLs : Seq [ URL ]
override def classes ( inPackage: String ) : Seq [ ClassFileEntry ]
def copy ( aggregates: Seq [ ClassPath ] ) : AggregateClassPath
def copy$default$1 : Seq [ ClassPath ]
override def findClass ( className: String ) : Option [ ClassRepresentation ]

It returns both classes from class file and source files (as our base ClassRepresentation). So note that it's not so strictly related to findClassFile.

It returns both classes from class file and source files (as our base ClassRepresentation). So note that it's not so strictly related to findClassFile.

override def findClassFile ( className: String ) : Option [ AbstractFile ]
private def getDistinctEntries ( getEntries: ClassPath => Seq [ EntryType ] ) : Seq [ EntryType ]
override def list ( inPackage: String ) : ClassPathEntries

Allows to get entries for packages and classes merged with sources possibly in one pass.

Allows to get entries for packages and classes merged with sources possibly in one pass.

[+] private def mergeClassesAndSources ( entries: [ Seq [ ClassRepresentation ] ] ) : Seq [ ClassRepresentation ]

Returns only one entry for each name. If there's both a source and a class entry, it creates an entry containing both of them. If there would be more t...

Returns only one entry for each name. If there's both a source and a class entry, it creates an entry containing both of them. If there would be more than one class or source entries for the same class it always would use the first entry of each type found on a classpath.

override def packages ( inPackage: String ) : Seq [ PackageEntry ]

Empty string represents root package

Empty string represents root package

override def sources ( inPackage: String ) : Seq [ SourceFileEntry ]