All Classes

Class Description
AbstractClassesTransformer<T>
Default base implementation of ClassesTransformer, where only AbstractClassesTransformer.doTransform(JavaClasses) has to be implemented, while description and filtering via AbstractClassesTransformer.that(DescribedPredicate) are provided.
AccessTarget
Represents the target of a JavaAccess.
AccessTarget.CodeUnitCallTarget
Represents an AccessTarget where the target is a code unit.
AccessTarget.CodeUnitCallTarget.Functions  
AccessTarget.ConstructorCallTarget  
AccessTarget.ConstructorCallTarget.Functions  
AccessTarget.FieldAccessTarget
Represents an AccessTarget where the target is a field.
AccessTarget.FieldAccessTarget.Functions  
AccessTarget.Functions  
AccessTarget.MethodCallTarget
Represents a AccessTarget.CodeUnitCallTarget where the target is a method.
AccessTarget.MethodCallTarget.Functions  
AccessTarget.Predicates  
AllDependenciesCondition  
AnyDependencyCondition  
ArchCondition<T>  
ArchConditions  
ArchConfiguration
Allows access to configured properties in "archunit.properties".
ArchitectureMetrics  
Architectures
Offers convenience to assert typical architectures: Architectures.layeredArchitecture() Architectures.onionArchitecture()
Architectures.LayeredArchitecture  
Architectures.OnionArchitecture  
ArchPredicates  
ArchRule
Represents a rule about a specified set of objects of interest (e.g.
ArchRule.Assertions  
ArchRule.Factory  
ArchRule.Transformation  
ArchRule.Transformation.As  
ArchRule.Transformation.Because  
ArchRuleDefinition  
ArchRuleDefinition.Creator  
ArchUnitException  
ArchUnitException.ClassResolverConfigurationException  
ArchUnitException.InconsistentClassPathException  
ArchUnitException.InvalidSyntaxUsageException  
ArchUnitException.LocationException  
ArchUnitException.ReflectionException  
ArchUnitException.UnsupportedUriSchemeException  
ArchUnitExtension
ArchUnit extensions need to implement this interface.
ArchUnitExtensions  
CanBeAnnotated  
CanBeAnnotated.Predicates  
CanBeAnnotated.Utils  
CanBeEvaluated  
CanOverrideDescription<SELF>  
ChainableFunction<F,​T>  
ClassesShould  
ClassesShouldConjunction  
ClassesThat<CONJUNCTION>  
ClassesTransformer<T>  
ClassFileImporter
The central API to import JavaClasses from compiled Java class files.
ClassLoaders  
ClassResolver
The ClassFileImporter will use the configured ClassResolver, to determine how to resolve further dependencies.

For example, if you import the package com.foo.bar, and some class com.foo.bar.FooBar calls a method of com.other.Dependency, the ClassResolver will decide how this dependency should be treated, i.e.
ClassResolver.ClassUriImporter
Provides a way to import a JavaClass from a given URI.
ClassResolver.Factory  
ClassResolverFromClasspath
A ClassResolver that tries to locate missing dependencies on the classpath.
CodeUnitsShould<CONJUNCTION extends CodeUnitsShouldConjunction<?>>  
CodeUnitsShouldConjunction<CODE_UNIT extends JavaCodeUnit>  
CodeUnitsThat<CONJUNCTION extends GivenCodeUnitsConjunction<?>>  
ComponentDependencyMetrics
Calculates architecture metrics as defined by Robert C.
CompositeArchRule  
CompositeArchRule.Creator  
ConditionEvent  
ConditionEvent.Handler
Handles the data of a ConditionEvent that is the corresponding objects and the description (compare ConditionEvent.handleWith(Handler)).
As an example, this could be a single element of type JavaMethodCall together with a description, like
ConditionEvents  
Dependency
Represents a dependency of one Java class on another Java class.
Dependency.Functions  
Dependency.Predicates  
DependencyRules
DependencyRules provides a set of general ArchConditions and ArchRules for checking dependencies between classes.
DescribedIterable<T>  
DescribedIterable.From  
DescribedPredicate<T>
A predicate holding a description.
DomainBuilders  
DomainBuilders.CodeUnitCallTargetBuilder<SELF extends DomainBuilders.CodeUnitCallTargetBuilder<SELF>>  
DomainBuilders.ConstructorCallTargetBuilder  
DomainBuilders.FieldAccessTargetBuilder  
DomainBuilders.JavaAccessBuilder<TARGET extends AccessTarget,​SELF extends DomainBuilders.JavaAccessBuilder<TARGET,​SELF>>  
DomainBuilders.JavaAnnotationBuilder  
DomainBuilders.JavaClassBuilder  
DomainBuilders.JavaCodeUnitBuilder<OUTPUT,​SELF extends DomainBuilders.JavaCodeUnitBuilder<OUTPUT,​SELF>>  
DomainBuilders.JavaConstructorBuilder  
DomainBuilders.JavaConstructorCallBuilder  
DomainBuilders.JavaEnumConstantBuilder  
DomainBuilders.JavaFieldAccessBuilder  
DomainBuilders.JavaFieldBuilder  
DomainBuilders.JavaMemberBuilder<OUTPUT,​SELF extends DomainBuilders.JavaMemberBuilder<OUTPUT,​SELF>>  
DomainBuilders.JavaMethodBuilder  
DomainBuilders.JavaMethodCallBuilder  
DomainBuilders.JavaStaticInitializerBuilder  
DomainBuilders.JavaTypeParameterBuilder<OWNER extends HasDescription>  
DomainBuilders.JavaWildcardTypeBuilder<OWNER extends HasDescription>  
DomainBuilders.MethodCallTargetBuilder  
DomainObjectCreationContext
Together with DomainBuilders, this class is the link to create domain objects from the import context.
EvaluatedRule
Bundles an ArchRule together with the JavaClasses that were evaluated, and the respective EvaluationResult.
EvaluationResult
Represents the result of evaluating an ArchRule against some JavaClasses.
FailureDisplayFormat
Allows to customize violation messages and rule text of ArchRules.
FailureMessages  
FailureReport  
FieldsShould<CONJUNCTION extends FieldsShouldConjunction>  
FieldsShouldConjunction  
FieldsThat<CONJUNCTION extends GivenFieldsConjunction>  
Formatters  
ForwardingCollection<T>  
ForwardingList<T>  
ForwardingSet<T>  
FreezingArchRule
A decorator around an existing ArchRule that "freezes" the state of all violations on the first call instead of failing the test.
Function<F,​T>  
Function.Functions  
GeneralCodingRules
GeneralCodingRules provides a set of very general ArchConditions and ArchRules for coding that might be useful in various projects.
GivenClass  
GivenClasses  
GivenClassesConjunction  
GivenCodeUnits<CODE_UNIT extends JavaCodeUnit>  
GivenCodeUnitsConjunction<CODE_UNIT extends JavaCodeUnit>  
GivenConjunction<OBJECTS>  
GivenConstructors  
GivenConstructorsConjunction  
GivenFields  
GivenFieldsConjunction  
GivenMembers<MEMBER extends JavaMember>  
GivenMembersConjunction<MEMBER extends JavaMember>  
GivenMethods  
GivenMethodsConjunction  
GivenNamedSlices  
GivenObjects<T>  
GivenSlices  
GivenSlicesConjunction  
Guava
NOTE: We keep Google Guava out of the public API and use the Gradle Shadow plugin to repackage the internally used Guava classes.
Guava.Iterables  
Guava.Maps  
HasAnnotations<SELF extends HasAnnotations<SELF>>  
HasDescription  
HasDescriptor  
HasModifiers  
HasModifiers.Predicates  
HasName  
HasName.AndFullName  
HasName.AndFullName.Functions  
HasName.AndFullName.Predicates  
HasName.Functions  
HasName.Predicates  
HasOwner<T>
A highly context dependent definition of something that has a higher order "owner".
HasOwner.Functions  
HasOwner.Functions.Get  
HasOwner.Predicates  
HasOwner.Predicates.With  
HasParameterTypes  
HasParameterTypes.Predicates  
HasReturnType  
HasReturnType.Functions  
HasReturnType.Predicates  
HasSourceCodeLocation  
HasThrowsClause<LOCATION extends HasParameterTypes & HasReturnType & HasName.AndFullName & CanBeAnnotated & HasOwner<JavaClass>>  
HasThrowsClause.Predicates  
HasType  
HasType.Functions  
HasType.Predicates  
HasUpperBounds  
ImportContext  
ImportOption
Will be evaluated for every class location, to determine if the class should be imported.

IMPORTANT: For things like caching to work, it's important that the behavior of any implementation is constant, i.e.
ImportOption.DoNotIncludeArchives  
ImportOption.DoNotIncludeJars  
ImportOption.DoNotIncludeTests
Best effort ImportOption to check rules only on main classes.
NOTE: This excludes all class files residing in some directory ../target/test-classes/.., ../build/classes/test/..
ImportOption.OnlyIncludeTests
Best effort ImportOption to check rules only on test classes.
See ImportOption.DoNotIncludeTests for limitations of test class identification.
ImportOption.Predefined  
ImportOptions
A collection of ImportOption to filter class locations.
InitialConfiguration<T>  
InstanceofCheck  
Internal
Any element annotated with this annotation, is meant for internal use ONLY.
Java14DomainPlugin
Resolved via PluginLoader
JavaAccess<TARGET extends AccessTarget>  
JavaAccess.Functions  
JavaAccess.Functions.Get  
JavaAccess.Predicates  
JavaAnnotation<OWNER extends HasDescription>
Represents an imported annotation on an annotated object like a class or a method.
JavaAnnotation.DefaultParameterVisitor
Default implementation of JavaAnnotation.ParameterVisitor implementing a no-op behavior, i.e.
JavaAnnotation.ParameterVisitor
A Visitor (compare JavaAnnotation.accept(ParameterVisitor)) offering possibilities to specify behavior when various types of JavaAnnotation.getProperties() are encountered.

The list of declared methods is exhaustive, thus any legal parameter type of an Annotation is represented by the respective visit-method.
JavaCall<T extends AccessTarget.CodeUnitCallTarget>  
JavaCall.Predicates  
JavaClass  
JavaClass.Functions  
JavaClass.Predicates  
JavaClassDescriptor  
JavaClassDescriptor.From  
JavaClasses  
JavaClassList  
JavaCodeUnit
Represents a unit of code containing accesses to other units of code.
JavaCodeUnit.Functions  
JavaCodeUnit.Functions.Get  
JavaCodeUnit.Predicates  
JavaConstructor  
JavaConstructorCall  
JavaEnumConstant  
JavaField  
JavaFieldAccess  
JavaFieldAccess.AccessType  
JavaFieldAccess.Predicates  
JavaGenericArrayType
Represents a generic array type used in signatures of parameterized types.
E.g.
JavaMember  
JavaMember.Predicates  
JavaMethod  
JavaMethodCall  
JavaModifier  
JavaPackage  
JavaPackage.ClassVisitor  
JavaPackage.Functions  
JavaPackage.PackageVisitor  
JavaParameterizedType
A JavaParameterizedType represents a concrete parameterization of a generic type.
JavaStaticInitializer
Represents the static initialization block of a class, e.g.
JavaType  
JavaType.Functions  
JavaTypeVariable<OWNER extends HasDescription>
Represents a type variable used by generic types and members.
E.g.
JavaWildcardType
Represents a wildcard type in a type signature (compare the JLS).
LakosMetrics
Calculates architecture metrics as defined by John Lakos in his book "Large-Scale C++ Software Design".
To calculate these metrics every component is assigned a "dependsOn" value that represents the number of other components that this component can reach transitively, including itself.
Location
Handles various forms of location from where classes can be imported in a consistent way.
Locations
Represents a set of locations of Java class files.
MayResolveTypesViaReflection
Marks the methods or classes, where resolving types via reflection is allowed.
MembersShould<CONJUNCTION extends MembersShouldConjunction<?>>  
MembersShouldConjunction<MEMBER extends JavaMember>  
MembersThat<CONJUNCTION extends GivenMembersConjunction<?>>  
MethodsShould<CONJUNCTION extends MethodsShouldConjunction>  
MethodsShouldConjunction  
MethodsThat<CONJUNCTION extends GivenMethodsConjunction>  
MetricsComponent<T>
Represents a component of the software system.
MetricsComponents<T>
A collection of MetricsComponent.
OnlyBeAccessedSpecification<CONJUNCTION>  
Optional<T>  
PackageMatcher
Matches packages with a syntax similar to AspectJ.
PackageMatcher.Result  
PackageMatchers  
PlantUmlArchCondition
Allows to evaluate PlantUML Component Diagrams as ArchUnit rules.
PlantUmlArchCondition.Configurations  
PluginLoader<T>  
PluginLoader.Creator<T>  
PluginLoader.JavaVersion  
Predicate<T>  
Predicate.Defaults  
PredicateAggregator<T>  
Priority  
ProxyRules
ProxyRules provides a set of general ArchConditions and ArchRules for checking the usage of proxies.
PublicAPI
Marks classes and members that are part of ArchUnit's public API.
PublicAPI.State  
PublicAPI.Usage  
ReferencedClassObject  
ReferencedClassObject.Functions  
ReflectionUtils  
ResolvesTypesViaReflection
Marks the methods or classes that resolve types via reflection so we can use it for architecture assertions.
SelectedClassResolverFromClasspath
Only resolves classes from classpath that are beneath the configured SelectedClassResolverFromClasspath.packageRoots.
SimpleConditionEvent  
Slice
A collection of JavaClasses modelling some domain aspect of a code basis.
SliceAssignment
A mapping JavaClass -> SliceIdentifier which defines how to partition a set of JavaClasses into Slices.
SliceDependency  
SliceIdentifier
A unique identifier of a Slice.
SliceRule  
Slices
Basic collection of Slice for tests of dependencies between different domain packages, e.g.
Slices.Transformer
Specifies how to transform a set of JavaClass into a set of Slice, e.g.
SlicesRuleDefinition
Allows to specify ArchRules for "slices" of a code base.
SlicesRuleDefinition.Creator  
SlicesShould  
Source
Contains information about an imported class, i.e.
Source.Md5sum  
SourceCodeLocation
Location in the source code of an ArchUnit domain object.
Supplier<T>  
ThrowsClause<LOCATION extends HasParameterTypes & HasReturnType & HasName.AndFullName & CanBeAnnotated & HasOwner<JavaClass>>  
ThrowsClause.Functions  
ThrowsDeclaration<LOCATION extends HasParameterTypes & HasReturnType & HasName.AndFullName & CanBeAnnotated & HasOwner<JavaClass>>
Represents one declared exception of a ThrowsClause.
ThrowsDeclaration.Functions  
ThrowsDeclaration.Functions.Get  
ViolationHandler<T>  
ViolationLineMatcher
Allows FreezingArchRule to decide when two lines of two violations count as "equivalent".
ViolationStore
Provides some sort of storage for violations to FreezingArchRule.
VisibilityMetrics
Calculates visibility metrics as defined by Herbert Dowalil in his book "Modulare Softwarearchitektur: Nachhaltiger Entwurf durch Microservices, Modulithen und SOA 2.0".