Top Description Fields Constructors Methods
io.github.classgraph

public Class ModuleInfo

extends Object
implements Comparable<ModuleInfo>, HasName
Class Inheritance
All Implemented Interfaces
io.github.classgraph.HasName, java.lang.Comparable
Imports
java.lang.annotation.Annotation, java.net.URI, java.util.HashSet, .LinkedHashSet, .Set, nonapi.io.github.classgraph.utils.Assert, .CollectionUtils

Holds metadata about a package encountered during a scan.

Field Summary

Modifier and TypeField and Description
private AnnotationInfoList
annotationInfo

AnnotationInfo objects for any annotations on the module-info.class file, if present, else null.

private Set<AnnotationInfo>
annotationInfoSet

Unique AnnotationInfo objects for any annotations on the module-info.class file, if present, else null.

private Set<ClassInfo>
classInfoSet

Set of classes in the module.

private transient ClasspathElement
classpathElement

The classpath element.

private transient URI
locationURI

The location of the module as a URI.

private transient ModuleRef
private String
name

The name of the module.

private Set<PackageInfo>
packageInfoSet

PackageInfo objects for packages found within the class, if any, else null.

Constructor Summary

AccessConstructor and Description
pack-priv
ModuleInfo()

Deerialization constructor.

pack-priv
ModuleInfo(final ModuleRef
the module ref
moduleRef
,
final ClasspathElement
the classpath element
classpathElement
)

Construct a ModuleInfo object.

Method Summary

Modifier and TypeMethod and Description
pack-priv void
addAnnotations(final AnnotationInfoList
the module annotations
moduleAnnotations
)

Add annotations found in a module descriptor classfile.

pack-priv void
addClassInfo(final ClassInfo
the ClassInfo object to add
classInfo
)

Add a ClassInfo object to this ModuleInfo.

pack-priv void
addPackageInfo(final PackageInfo
the PackageInfo object
packageInfo
)

Add a PackageInfo object to this ModuleInfo.

public int
compareTo(final ModuleInfo
the object to be compared.
other
)

Implements java.lang.Comparable.compareTo.

Compares this object with the specified object for order.

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.

public AnnotationInfo

Returns:

An AnnotationInfo object representing the annotation on this module, or null if the module does not have the annotation.
getAnnotationInfo
(final Class<? extends Annotation>
The annotation.
annotation
)

Get a the annotation on this module, or null if the module does not have the annotation.

public AnnotationInfo

Returns:

An AnnotationInfo object representing the named annotation on this module, or null if the module does not have the named annotation.
getAnnotationInfo
(final String
The annotation name.
annotationName
)

Get a the named annotation on this module, or null if the module does not have the named annotation.

public AnnotationInfoList

Returns:

the list of AnnotationInfo objects for annotations on the package-info.class file.
getAnnotationInfo
()

Get any annotations on the package-info.class file.

public ClassInfo

Returns:

the ClassInfo object for the named class in this module, or null if the class was not found in this module.
getClassInfo
(final String
the class name
className
)

Get the ClassInfo object for the named class in this module, or null if the class was not found in this module.

public ClassInfoList

Returns:

the list of ClassInfo objects for all classes that are members of this package.
getClassInfo
()

Get the list of ClassInfo objects for all classes that are members of this package.

public URI

Returns:

the module location, or null for modules whose location is unknown.
getLocation
()

The module location, or null for modules whose location is unknown.

public ModuleRef

Returns:

the ModuleRef, or null if this module was obtained from a classpath element on the traditional classpath that contained a module-info.class file.
getModuleRef
()

The ModuleRef for this module, or null if this module was obtained from a classpath element on the traditional classpath that contained a module-info.class file.

public String

Returns:

the module name, or "" for the unnamed module.
getName
()

Implements io.github.classgraph.HasName.getName.

The module name, or "" for the unnamed module.

public PackageInfo

Returns:

the PackageInfo object for the named package in this module, or null if the package was not found in this module.
getPackageInfo
(final String
the package name
packageName
)

Get the PackageInfo object for the named package in this module, or null if the package was not found in this module.

public PackageInfoList

Returns:

the list of PackageInfo objects for all packages that are members of this module.
getPackageInfo
()

Get the PackageInfo objects for all packages that are members of this module.

public boolean

Returns:

true if this module has the annotation.
hasAnnotation
(final Class<? extends Annotation>
The annotation.
annotation
)

Check if this module has the annotation.

public boolean

Returns:

true if this module has the named annotation.
hasAnnotation
(final String
The name of an annotation.
annotationName
)

Check if this module has the named annotation.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

annotationInfoback to summary
private AnnotationInfoList annotationInfo

AnnotationInfo objects for any annotations on the module-info.class file, if present, else null.

annotationInfoSetback to summary
private Set<AnnotationInfo> annotationInfoSet

Unique AnnotationInfo objects for any annotations on the module-info.class file, if present, else null.

classInfoSetback to summary
private Set<ClassInfo> classInfoSet

Set of classes in the module.

classpathElementback to summary
private transient ClasspathElement classpathElement

The classpath element.

locationURIback to summary
private transient URI locationURI

The location of the module as a URI.

moduleRefback to summary
private transient ModuleRef moduleRef

The ModuleRef.

nameback to summary
private String name

The name of the module.

packageInfoSetback to summary
private Set<PackageInfo> packageInfoSet

PackageInfo objects for packages found within the class, if any, else null.

Constructor Detail

ModuleInfoback to summary
pack-priv ModuleInfo()

Deerialization constructor.

ModuleInfoback to summary
pack-priv ModuleInfo(final ModuleRef moduleRef, final ClasspathElement classpathElement)

Construct a ModuleInfo object.

Parameters
moduleRef:ModuleRef

the module ref

classpathElement:ClasspathElement

the classpath element

Method Detail

addAnnotationsback to summary
pack-priv void addAnnotations(final AnnotationInfoList moduleAnnotations)

Add annotations found in a module descriptor classfile.

Parameters
moduleAnnotations:AnnotationInfoList

the module annotations

addClassInfoback to summary
pack-priv void addClassInfo(final ClassInfo classInfo)

Add a ClassInfo object to this ModuleInfo.

Parameters
classInfo:ClassInfo

the ClassInfo object to add

addPackageInfoback to summary
pack-priv void addPackageInfo(final PackageInfo packageInfo)

Add a PackageInfo object to this ModuleInfo.

Parameters
packageInfo:PackageInfo

the PackageInfo object

compareToback to summary
public int compareTo(final ModuleInfo other)

Implements java.lang.Comparable.compareTo.

Doc from java.lang.Comparable.compareTo.

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z)) == signum(y.compareTo(z)), for all z.

Parameters
other:ModuleInfo

the object to be compared.

Returns:int

a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Annotations
@Override
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
getAnnotationInfoback to summary
public AnnotationInfo getAnnotationInfo(final Class<? extends Annotation> annotation)

Get a the annotation on this module, or null if the module does not have the annotation.

Parameters
annotation:Class<? extends Annotation>

The annotation.

Returns:AnnotationInfo

An AnnotationInfo object representing the annotation on this module, or null if the module does not have the annotation.

getAnnotationInfoback to summary
public AnnotationInfo getAnnotationInfo(final String annotationName)

Get a the named annotation on this module, or null if the module does not have the named annotation.

Parameters
annotationName:String

The annotation name.

Returns:AnnotationInfo

An AnnotationInfo object representing the named annotation on this module, or null if the module does not have the named annotation.

getAnnotationInfoback to summary
public AnnotationInfoList getAnnotationInfo()

Get any annotations on the package-info.class file.

Returns:AnnotationInfoList

the list of AnnotationInfo objects for annotations on the package-info.class file.

getClassInfoback to summary
public ClassInfo getClassInfo(final String className)

Get the ClassInfo object for the named class in this module, or null if the class was not found in this module.

Parameters
className:String

the class name

Returns:ClassInfo

the ClassInfo object for the named class in this module, or null if the class was not found in this module.

getClassInfoback to summary
public ClassInfoList getClassInfo()

Get the list of ClassInfo objects for all classes that are members of this package.

Returns:ClassInfoList

the list of ClassInfo objects for all classes that are members of this package.

getLocationback to summary
public URI getLocation()

The module location, or null for modules whose location is unknown.

Returns:URI

the module location, or null for modules whose location is unknown.

getModuleRefback to summary
public ModuleRef getModuleRef()

The ModuleRef for this module, or null if this module was obtained from a classpath element on the traditional classpath that contained a module-info.class file.

Returns:ModuleRef

the ModuleRef, or null if this module was obtained from a classpath element on the traditional classpath that contained a module-info.class file.

getNameback to summary
public String getName()

Implements io.github.classgraph.HasName.getName.

The module name, or "" for the unnamed module.

Returns:String

the module name, or "" for the unnamed module.

Annotations
@Override
getPackageInfoback to summary
public PackageInfo getPackageInfo(final String packageName)

Get the PackageInfo object for the named package in this module, or null if the package was not found in this module.

Parameters
packageName:String

the package name

Returns:PackageInfo

the PackageInfo object for the named package in this module, or null if the package was not found in this module.

getPackageInfoback to summary
public PackageInfoList getPackageInfo()

Get the PackageInfo objects for all packages that are members of this module.

Returns:PackageInfoList

the list of PackageInfo objects for all packages that are members of this module.

hasAnnotationback to summary
public boolean hasAnnotation(final Class<? extends Annotation> annotation)

Check if this module has the annotation.

Parameters
annotation:Class<? extends Annotation>

The annotation.

Returns:boolean

true if this module has the annotation.

hasAnnotationback to summary
public boolean hasAnnotation(final String annotationName)

Check if this module has the named annotation.

Parameters
annotationName:String

The name of an annotation.

Returns:boolean

true if this module has the named annotation.

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
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override