Class ArchModule<DESCRIPTOR extends ArchModule.Descriptor>

All Implemented Interfaces:
HasName, Iterable<JavaClass>, Collection<JavaClass>, Set<JavaClass>

@PublicAPI(usage=ACCESS, state=EXPERIMENTAL) public final class ArchModule<DESCRIPTOR extends ArchModule.Descriptor> extends ForwardingSet<JavaClass> implements HasName
Represents a generic "architecture module", i.e. any group of classes that should form a cohesive unit.
An ArchModule can be identified by its identifier. Vice versa an ArchModule can be defined as a mapping JavaClass -> ArchModule.Identifier, where all classes that are mapped to the same identifier will end up in the same module.
ArchModule offers an API to obtain all class dependencies, i.e. all dependencies from classes within the module to classes outside of the module. It also offers an API to obtain all module dependencies, i.e. dependencies from this ArchModule to another ArchModule where these dependencies reflect all class dependencies where the origin resides within this ArchModule and the target resides within another ArchModule.

To create ArchModules please refer to ArchModules.