Top Description Fields Constructors Methods
io.github.classgraph

pack-priv Class ClasspathElementDir

extends ClasspathElement
Class Inheritance
Imports
java.io.File, .IOError, .IOException, .InputStream, java.net.URI, java.nio.ByteBuffer, java.nio.file.DirectoryStream, .Files, .Path, java.nio.file.attribute.BasicFileAttributes, .PosixFileAttributes, .PosixFilePermission, java.util.ArrayList, .Collections, .HashSet, .Iterator, .List, .Objects, .Set, java.util.concurrent.atomic.AtomicBoolean, io.github.classgraph.Scanner.ClasspathEntryWorkUnit, nonapi.io.github.classgraph.classloaderhandler.ClassLoaderHandlerRegistry, nonapi.io.github.classgraph.concurrency.WorkQueue, nonapi.io.github.classgraph.fastzipfilereader.LogicalZipFile, .NestedJarHandler, nonapi.io.github.classgraph.fileslice.PathSlice, nonapi.io.github.classgraph.fileslice.reader.ClassfileReader, nonapi.io.github.classgraph.scanspec.ScanSpec, .ScanSpec.ScanSpecPathMatch, nonapi.io.github.classgraph.utils.FastPathResolver, .FileUtils, .LogNode, .VersionFinder

A directory classpath element, using the Path API.

Field Summary

Modifier and TypeField and Description
private final Path
classpathEltPath

The directory at the root of the classpath element.

private final NestedJarHandler
nestedJarHandler

The nested jar handler.

private final Set<Path>
scannedCanonicalPaths

Used to ensure that recursive scanning doesn't get into an infinite loop due to a link cycle.

Inherited from io.github.classgraph.ClasspathElement:
acceptedClassfileResourcesacceptedResourceschildClasspathElementsclassLoaderclasspathElementIdxclasspathElementIdxWithinParentcontainsSpecificallyAcceptedClasspathElementResourcePathfileToLastModifiedmoduleNameFromModuleDescriptornestedClasspathRootPrefixespackageRootPrefixscannedscanResultscanSpecskipClasspathElement

Constructor Summary

AccessConstructor and Description
pack-priv
ClasspathElementDir(final Scanner.ClasspathEntryWorkUnit
the work unit -- workUnit.classpathEntryObj must be a Path object
workUnit
,
final NestedJarHandler
the nested jar handler
nestedJarHandler
,
final ScanSpec
the scan spec
scanSpec
)

A directory classpath element.

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(final Object
the reference object with which to compare.
obj
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

pack-priv List<URI>
getAllURIs()

Implements abstract io.github.classgraph.ClasspathElement.getAllURIs.

Get the URI for this classpath element, and the URIs for any automatic nested package prefixes (e.g. "spring-boot.jar/BOOT-INF/classes") within this jarfile.

public File

Returns:

The classpath element directory as a File, or null if this classpath element is not backed by a directory (should not happen).
getFile
()

Implements abstract io.github.classgraph.ClasspathElement.getFile.

Get the directory File.

public String

Returns:

the module name
getModuleName
()

Implements abstract io.github.classgraph.ClasspathElement.getModuleName.

Get the module name from module descriptor.

pack-priv Resource

Returns:

The Resource for the given relative path, or null if relativePath does not exist in this classpath element.
getResource
(final String
The relative path of the Resource to return.
relativePath
)

Implements abstract io.github.classgraph.ClasspathElement.getResource.

Get the Resource for a given relative path.

pack-priv URI
getURI()

Implements abstract io.github.classgraph.ClasspathElement.getURI.

Get the URI for this classpath element.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

private Resource

Returns:

the resource
newResource
(final Path
the Path for the resource
resourcePath
,
final BasicFileAttributes attributes)

Create a new Resource object for a resource or classfile discovered while scanning paths.

pack-priv void
open(final WorkQueue<Scanner.ClasspathEntryWorkUnit>
the work queue
workQueue
,
final LogNode
the log
log
)

Implements abstract io.github.classgraph.ClasspathElement.open.

Determine if this classpath element is valid.

private void
scanPathRecursively(final Path
the Path
path
,
final LogNode
the log
log
)

Recursively scan a Path for sub-path patterns matching the scan spec.

pack-priv void
scanPaths(final LogNode
the log
log
)

Implements abstract io.github.classgraph.ClasspathElement.scanPaths.

Hierarchically scan directory structure for classfiles and matching files.

public String

Returns:

the string
toString
()

Overrides java.lang.Object.toString.

Return the classpath element directory as a String.

Inherited from io.github.classgraph.ClasspathElement:
addAcceptedResourcecheckResourcePathAcceptRejectcompareTofinishScanPathsgetClassLoadergetNumClassfileMatchesloglogmaskClassfilessetScanResult

Field Detail

classpathEltPathback to summary
private final Path classpathEltPath

The directory at the root of the classpath element.

nestedJarHandlerback to summary
private final NestedJarHandler nestedJarHandler

The nested jar handler.

scannedCanonicalPathsback to summary
private final Set<Path> scannedCanonicalPaths

Used to ensure that recursive scanning doesn't get into an infinite loop due to a link cycle.

Constructor Detail

ClasspathElementDirback to summary
pack-priv ClasspathElementDir(final Scanner.ClasspathEntryWorkUnit workUnit, final NestedJarHandler nestedJarHandler, final ScanSpec scanSpec)

A directory classpath element.

Parameters
workUnit:Scanner.ClasspathEntryWorkUnit

the work unit -- workUnit.classpathEntryObj must be a Path object

nestedJarHandler:NestedJarHandler

the nested jar handler

scanSpec:ScanSpec

the scan spec

Method Detail

equalsback to summary
public boolean equals(final Object obj)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getAllURIsback to summary
pack-priv List<URI> getAllURIs()

Implements abstract io.github.classgraph.ClasspathElement.getAllURIs.

Doc from io.github.classgraph.ClasspathElement.getAllURIs.

Get the URI for this classpath element, and the URIs for any automatic nested package prefixes (e.g. "spring-boot.jar/BOOT-INF/classes") within this jarfile.

Returns:List<URI>

the URI for the classpath element.

Annotations
@Override
getFileback to summary
public File getFile()

Implements abstract io.github.classgraph.ClasspathElement.getFile.

Get the directory File.

Returns:File

The classpath element directory as a File, or null if this classpath element is not backed by a directory (should not happen).

Annotations
@Override
getModuleNameback to summary
public String getModuleName()

Implements abstract io.github.classgraph.ClasspathElement.getModuleName.

Get the module name from module descriptor.

Returns:String

the module name

Annotations
@Override
getResourceback to summary
pack-priv Resource getResource(final String relativePath)

Implements abstract io.github.classgraph.ClasspathElement.getResource.

Get the Resource for a given relative path.

Parameters
relativePath:String

The relative path of the Resource to return.

Returns:Resource

The Resource for the given relative path, or null if relativePath does not exist in this classpath element.

Annotations
@Override
getURIback to summary
pack-priv URI getURI()

Implements abstract io.github.classgraph.ClasspathElement.getURI.

Doc from io.github.classgraph.ClasspathElement.getURI.

Get the URI for this classpath element.

Returns:URI

the URI for the classpath element.

Annotations
@Override
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
newResourceback to summary
private Resource newResource(final Path resourcePath, final BasicFileAttributes attributes)

Create a new Resource object for a resource or classfile discovered while scanning paths.

Parameters
resourcePath:Path

the Path for the resource

Returns:Resource

the resource

openback to summary
pack-priv void open(final WorkQueue<Scanner.ClasspathEntryWorkUnit> workQueue, final LogNode log)

Implements abstract io.github.classgraph.ClasspathElement.open.

Doc from io.github.classgraph.ClasspathElement.open.

Determine if this classpath element is valid. If it is not valid, sets skipClasspathElement. For ClasspathElementZip, may also open or extract inner jars, and also causes jarfile manifests to be read to look for Class-Path entries. If nested jars or Class-Path entries are found, they are added to the work queue. This method is only run once per classpath element, from a single thread.

Parameters
workQueue:WorkQueue<Scanner.ClasspathEntryWorkUnit>

the work queue

log:LogNode

the log

Annotations
@Override
scanPathRecursivelyback to summary
private void scanPathRecursively(final Path path, final LogNode log)

Recursively scan a Path for sub-path patterns matching the scan spec.

Parameters
path:Path

the Path

log:LogNode

the log

scanPathsback to summary
pack-priv void scanPaths(final LogNode log)

Implements abstract io.github.classgraph.ClasspathElement.scanPaths.

Hierarchically scan directory structure for classfiles and matching files.

Parameters
log:LogNode

the log

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Return the classpath element directory as a String.

Returns:String

the string

Annotations
@Override