package de
Functionality to extract dependencies between class files.
- Alphabetic
- By Inheritance
- de
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
class
DependencyCollectingDependencyProcessor extends DependencyProcessor
Collects all dependencies extracted by a DependencyExtractor.
Collects all dependencies extracted by a DependencyExtractor.
Thread Safety
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.
-
class
DependencyCountingDependencyProcessor extends DependencyProcessor
A dependency processor that just counts the number of dependencies.
A dependency processor that just counts the number of dependencies.
Typically, a
DependencyProcessoris passed to a DependencyExtractor. The latter calls back theprocessDependencymethods for each identified dependency. -
class
DependencyExtractor extends AnyRef
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.
Concurrency
The
DependencyExtractordoes not perform any kind of parallelization on its own. Users of aDependencyExtractorare expected to perform the parallelization (e.g., on the level of source elements) if desired.Thread Safety
The
DependencyExtractordoes 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
DepencencyExtractoris used by multiple threads concurrently, the DependencyProcessor has to be thread-safe.- Note
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
,processDependencymethod.If the DependencyExtractor is extended, it is important to delegate all creations of
VirtualSourceElementsto the DependencyProcessor to make sure that the dependency processor can perform, e.g., some internalization.
-
trait
DependencyProcessor extends AnyRef
A dependency processor processes dependencies between two source elements.
A dependency processor processes dependencies between two source elements.
Typically, a
DependencyProcessoris passed to a DependencyExtractor. The latter calls back theprocessDependencymethods for each identified dependency. -
class
DependencyProcessorAdapter extends DependencyProcessor
Basic implementation of the
DependencyProcessortrait that does nothing when a dependency is reported. -
class
DependencyProcessorDecorator extends DependencyProcessor
Decorator for a given DependencyProcessor.
Decorator for a given DependencyProcessor.
Usage Scenario
If some special processing of some
VirtualSourceElements needs to be done, but in other cases processing should just be delegated to another dependency processor.Thread Safety
This class is thread-safe if the specified base dependency processor is also thread-safe.
-
class
DependencyStore extends AnyRef
Stores extracted dependencies.
Stores extracted dependencies.
Thread Safety
This class is thread safe.
- type DependencyType = de.DependencyTypes.Value
- type DependencyTypesBitSet = Long
- type DependencyTypesSet = Set[DependencyType]
-
trait
FilterSelfDependencies extends DependencyProcessor
A
DependencyProcessorthat filters self-dependencies.A
DependencyProcessorthat filters self-dependencies.- See also
DependencyStoreWithoutSelfDependenciesKey for a usage.
Value Members
- object DependencyProcessorAdapter extends DependencyProcessorAdapter
- object DependencyStore
-
object
DependencyStoreKey extends ProjectInformationKey[DependencyStore, Nothing]
Key that can be used to get a
DependencyStorethat contains all dependencies.Key that can be used to get a
DependencyStorethat contains all dependencies.Usage
Just pass this object to a
Projectto get the DependencyStore. -
object
DependencyStoreWithoutSelfDependenciesKey extends ProjectInformationKey[DependencyStore, Nothing]
Key that can be used to get a
DependencyStorethat contains all dependencies except self dependencies.Key that can be used to get a
DependencyStorethat contains all dependencies except self dependencies.Usage
Just pass this object to a
Projectto get the DependencyStore. -
object
DependencyTypes extends Enumeration
Enumeration of all kinds of dependencies that are extracted by the DependencyExtractor.