Class StackedIndex
- All Implemented Interfaces:
IndexView
- Since:
- 3.2.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic StackedIndexCreates a stacked index from givenindexes.static StackedIndexCreates a stacked index from givenindexes.getAllKnownImplementations(DotName interfaceName) Returns all known classes that implement the given interface, directly and indirectly.getAllKnownImplementors(DotName interfaceName) Returns all known classes that implement the given interface, directly and indirectly.getAllKnownSubclasses(DotName className) Returns all known subclasses of the given class, direct and indirect.getAllKnownSubinterfaces(DotName interfaceName) Returns all known subinterfaces of the given interface, direct and indirect.getAnnotations(DotName annotationName) Obtains a list of instances for the specified annotation.getAnnotationsWithRepeatable(DotName annotationName, IndexView index) Obtains a list of instances for the specified annotation.getClassByName(DotName className) Returns the class (or enum, record, interface, annotation) with given name.getClassesInPackage(DotName packageName) Returns all classes known to this index that are present in given package.Gets all known classes by this index (those which were scanned).getKnownDirectImplementations(DotName interfaceName) Returns all known classes that directly implement the given interface.getKnownDirectImplementors(DotName interfaceName) Gets all known direct implementors of the specified interface.getKnownDirectSubclasses(DotName className) Returns all known direct subclasses of the given class.getKnownDirectSubinterfaces(DotName interfaceName) Returns all known direct subinterfaces of the given interface.Gets all known modules by this index (those which were scanned).getKnownUsers(DotName className) Returns a list of classes in this index that use the specified class.getModuleByName(DotName moduleName) Gets the module that was scanned during the indexing phase.getSubpackages(DotName packageName) Returns a set of packages known to this index that are direct subpackages of given package.Creates a new stacked index where the givenindexis on top of the stack and the rest of the stack is equivalent to this stacked index.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jboss.jandex.IndexView
getAllKnownImplementations, getAllKnownImplementations, getAllKnownImplementors, getAllKnownImplementors, getAllKnownSubclasses, getAllKnownSubclasses, getAllKnownSubinterfaces, getAllKnownSubinterfaces, getAnnotations, getAnnotations, getAnnotationsWithRepeatable, getAnnotationsWithRepeatable, getClassByName, getClassByName, getClassesInPackage, getKnownDirectImplementations, getKnownDirectImplementations, getKnownDirectImplementors, getKnownDirectImplementors, getKnownDirectSubclasses, getKnownDirectSubclasses, getKnownDirectSubinterfaces, getKnownDirectSubinterfaces, getKnownUsers, getKnownUsers, getModuleByName, getSubpackages
-
Method Details
-
create
Creates a stacked index from givenindexes. The first element of the list is the bottom-most index on the stack, while the last element of the list is the top-most index on the stack.- Parameters:
indexes- indexes in stack order; must not benulland must not containnullelements- Returns:
- stacked index, never
null
-
create
Creates a stacked index from givenindexes. The first element of the array is the bottom-most index on the stack, while the last element of the array is the top-most index on the stack.- Parameters:
indexes- indexes in stack order; must not benulland must not containnullelements- Returns:
- stacked index, never
null
-
pushIndex
Creates a new stacked index where the givenindexis on top of the stack and the rest of the stack is equivalent to this stacked index.- Parameters:
index- the index to become a new top of the stack- Returns:
- a new stacked index that results from pushing
indexon top of this stacked index
-
getKnownClasses
Description copied from interface:IndexViewGets all known classes by this index (those which were scanned).- Specified by:
getKnownClassesin interfaceIndexView- Returns:
- immutable collection of known classes, never
null
-
getClassByName
Description copied from interface:IndexViewReturns the class (or enum, record, interface, annotation) with given name. Returnsnullif class with given name is not present in the index.- Specified by:
getClassByNamein interfaceIndexView- Parameters:
className- the name of the class- Returns:
- information about the class or
nullif it is not known
-
getKnownDirectSubclasses
Description copied from interface:IndexViewReturns all known direct subclasses of the given class. Indirect subclasses are not returned.Note that interfaces are considered direct subclasses of
java.lang.Object.- Specified by:
getKnownDirectSubclassesin interfaceIndexView- Parameters:
className- the class- Returns:
- an immutable collection of known direct subclasses of given class, never
null
-
getAllKnownSubclasses
Description copied from interface:IndexViewReturns all known subclasses of the given class, direct and indirect. In other words, all classes that are assignable to the given class.- Specified by:
getAllKnownSubclassesin interfaceIndexView- Parameters:
className- the class- Returns:
- immutable collection of all known subclasses of given class, never
null
-
getKnownDirectSubinterfaces
Description copied from interface:IndexViewReturns all known direct subinterfaces of the given interface. Indirect subinterfaces are not returned.- Specified by:
getKnownDirectSubinterfacesin interfaceIndexView- Parameters:
interfaceName- the interface- Returns:
- immutable collection of all known subinterfaces of given interface, never
null
-
getAllKnownSubinterfaces
Description copied from interface:IndexViewReturns all known subinterfaces of the given interface, direct and indirect. In other words, all interfaces that are assignable to the given interface.- Specified by:
getAllKnownSubinterfacesin interfaceIndexView- Parameters:
interfaceName- the interface- Returns:
- immutable collection of all known subinterfaces of given interface, never
null
-
getKnownDirectImplementations
Description copied from interface:IndexViewReturns all known classes that directly implement the given interface. Classes that do not directly implement the given interface but do directly implement subinterfaces are not returned. Subclasses of classes that directly implement the given interface are not returned either.Note that unlike
IndexView.getKnownDirectImplementors(DotName), this method does NOT return direct subinterfaces of the given interface, which is typically what you expect when you call this method.- Specified by:
getKnownDirectImplementationsin interfaceIndexView- Parameters:
interfaceName- the interface- Returns:
- immutable collection of all known direct implementations of the interface, never
null
-
getAllKnownImplementations
Description copied from interface:IndexViewReturns all known classes that implement the given interface, directly and indirectly. That is, all classes that implement the interface and its subinterfaces, as well as all their subclasses. In other words, all classes that are assignable to the interface.- Specified by:
getAllKnownImplementationsin interfaceIndexView- Parameters:
interfaceName- the interface- Returns:
- immutable collection of all known implementations of the interface, never
null
-
getKnownDirectImplementors
Description copied from interface:IndexViewGets all known direct implementors of the specified interface. A known direct implementor is one which was found during the scanning process; however, this is often not the complete universe of implementors, since typically indexes are constructed per jar. It is expected that several indexes will need to be searched when analyzing a jar that is a part of a complex multi-module/classloader environment (like an EE application server).The list of implementors also includes direct subinterfaces. This is inconsistent with
IndexView.getAllKnownImplementors(DotName), which doesn't return subinterfaces.Note that this will only pick up classes that directly implement given interface. It will not pick up classes implementing subinterfaces.
- Specified by:
getKnownDirectImplementorsin interfaceIndexView- Parameters:
interfaceName- The interface- Returns:
- All known direct implementors of the interface
-
getAllKnownImplementors
Description copied from interface:IndexViewReturns all known classes that implement the given interface, directly and indirectly. This will return all classes that implement the interface and its subinterfaces, as well as subclasses of classes that implement the interface and its subinterfaces. (In short, it will return every class in the index that is assignable to the interface.)Note that this method only returns classes. Unlike
IndexView.getKnownDirectImplementors(DotName), this method does not return subinterfaces of given interface.- Specified by:
getAllKnownImplementorsin interfaceIndexView- Parameters:
interfaceName- The interface- Returns:
- All known implementors of the interface
-
getAnnotations
Description copied from interface:IndexViewObtains a list of instances for the specified annotation. This is done using an O(1) lookup. Valid instance targets include field, method, parameter, and class.- Specified by:
getAnnotationsin interfaceIndexView- Parameters:
annotationName- the name of the annotation to look for- Returns:
- immutable collection of annotation instances, never
null
-
getAnnotationsWithRepeatable
public Collection<AnnotationInstance> getAnnotationsWithRepeatable(DotName annotationName, IndexView index) Description copied from interface:IndexViewObtains a list of instances for the specified annotation. If the specified annotation is repeatable (JLS 9.6), the result also contains all values from all instances of the container annotation. In this case, theAnnotationInstance.target()returns the target of the container annotation instance.- Specified by:
getAnnotationsWithRepeatablein interfaceIndexView- Parameters:
annotationName- the name of the repeatable annotationindex- the index containing the annotation class- Returns:
- immutable collection of annotation instances, never
null
-
getKnownModules
Description copied from interface:IndexViewGets all known modules by this index (those which were scanned).- Specified by:
getKnownModulesin interfaceIndexView- Returns:
- immutable collection of known modules, never
null
-
getModuleByName
Description copied from interface:IndexViewGets the module that was scanned during the indexing phase.- Specified by:
getModuleByNamein interfaceIndexView- Parameters:
moduleName- the name of the module- Returns:
- information about the module or
nullif it is not known
-
getKnownUsers
Description copied from interface:IndexViewReturns a list of classes in this index that use the specified class. For one class to use another class, the other class has to:- occur in the signature of the class (that is, in the superclass type, in the superinterface types, in the type parameters, or in the list of permitted subclasses), or
- occur in the signature of any of the class's methods (that is, in the return type, in the parameter types, in the exception types, or in the type parameters), or
- occur in the type of any of the class's fields or record components, or
- occur in the list of class references in the constant pool, as described by the JLS and JVMS.
- Specified by:
getKnownUsersin interfaceIndexView- Parameters:
className- the name of the class to look for- Returns:
- immutable collection of classes that use the specified class, never
null
-
getClassesInPackage
Description copied from interface:IndexViewReturns all classes known to this index that are present in given package. Classes present in subpackages of given package are not returned. Classes present in the unnamed package may be looked up usingnullas the package name. If this index does not contain any class in given package, returns an empty collection.In the default
Indeximplementation, this information is not stored in the index initially. Instead, an index of classes by package name is constructed on demand (on the first invocation of this method).- Specified by:
getClassesInPackagein interfaceIndexView- Parameters:
packageName- package name in the common, dot-separated form (e.g.com.example.foobar);nullmeans the unnamed package- Returns:
- immutable collection of classes present in given package, never
null
-
getSubpackages
Description copied from interface:IndexViewReturns a set of packages known to this index that are direct subpackages of given package. Indirect subpackages of given package (subpackages of subpackages) are not returned. If this index does not contain any class in a direct or indirect subpackage of given package, returns an empty collection.Given that the unnamed package may not contain subpackages, passing
nullas the package name is permitted, but always results in an empty set.In the default
Indeximplementation, this information is not stored in the index initially. Instead, an index of packages is constructed on demand (on the first invocation of this method).- Specified by:
getSubpackagesin interfaceIndexView- Parameters:
packageName- package name in the common, dot-separated form (e.g.com.example.foobar);nullmeans the unnamed package- Returns:
- immutable set of subpackages of given package, never
null
-