Collects all dependencies extracted by a DependencyExtractor.
Collects all dependencies extracted by a DependencyExtractor.
This class is thread-safe. However, it does not make sense to call the method toStore unless the dependency extractor that uses this processor has completed.
A dependency processor that just counts the number of dependencies.
A dependency processor that just counts the number of dependencies.
Typically, a DependencyProcessor
is passed to a
DependencyExtractor. The latter calls back the processDependency
methods
for each identified dependency.
Traverses a org.opalj.br.SourceElement and identifies all dependencies between the element (org.opalj.br.ClassFile, org.opalj.br.Field or org.opalj.br.Method declaration) and any element it depends on.
Traverses a org.opalj.br.SourceElement and identifies all dependencies between the element (org.opalj.br.ClassFile, org.opalj.br.Field or org.opalj.br.Method declaration) and any element it depends on. The kind of the dependencies that are extracted are defined by the DependencyType enumeration.
The DependencyExtractor
does not perform any kind of parallelization on its own.
Users of a DependencyExtractor
are expected to perform the parallelization (e.g.,
on the level of source elements) if desired.
The DependencyExtractor
does not define any relevant state and, hence, this
class is thread-safe.
However, if multiple dependency extractors are executed concurrently and
share the same DependencyProcessor or the same DepencencyExtractor
is used by multiple threads concurrently, the DependencyProcessor has to be
thread-safe.
If the DependencyExtractor is extended it is important to delegate all
creations of VirtualSourceElements
to the DependencyProcessor to make
sure that the dependency processor can perform, e.g., some internalization.
By default, self dependencies will be reported (e.g. a method that calls
itself, a class that defines a field with the same type). If necessary or
undesired, self dependencies can easily be filtered by a
DependencyProcessor's processDependency
method.
A dependency processor processes dependencies between two source elements.
A dependency processor processes dependencies between two source elements.
Typically, a DependencyProcessor
is passed to a
DependencyExtractor. The latter calls back the processDependency
methods
for each identified dependency.
Basic implementation of the DependencyProcessor
trait that does nothing when a
dependency is reported.
Decorator for a given DependencyProcessor.
Decorator for a given DependencyProcessor.
If some special processing of some VirtualSourceElement
s needs to be done, but
in other cases processing should just be delegated to another dependency processor.
This class is thread-safe if the specified dependency processor is also thread-safe.
Stores extracted dependencies.
Stores extracted dependencies.
This class is thread safe, as this class does not have any mutable state.
A DependencyProcessor
that filters self-dependencies.
A DependencyProcessor
that filters self-dependencies.
DependencyStoreWithoutSelfDependenciesKey for a usage.
Key that can be used to get a DependencyStore
that contains all dependencies.
Key that can be used to get a DependencyStore
that contains all dependencies.
Just pass this object to a Project
to get the DependencyStore.
Key that can be used to get a DependencyStore
that contains all dependencies
except self dependencies.
Key that can be used to get a DependencyStore
that contains all dependencies
except self dependencies.
Just pass this object to a Project
to get the DependencyStore.
Enumeration of all kinds of dependencies that are extracted by the DependencyExtractor.
Functionality to extract dependencies between class files.