Rulebearing Playground Coverage Schemas GitHub

Element rule keys

Generated by rulebearing docs --format reference --out docs/reference/element-rules.md from the element-rule vocabulary and the capability table; edit those, not this file. yes means the language answers the key as ArchUnitNET defines it; a no is exit 3 unless select.language leaves the language out. A key used on a select.kind (or nested selector kind) outside its Kinds cell is exit 3 as well. getterVisibility and setterVisibility take an access level and mean the havePublicGetter ... havePrivateProtectedSetter rows.

Concept select.where should Value Kinds .NET TypeScript JavaScript Python
are / be are, areNot be, notBe full names, or a nested selector every kind yes yes yes yes
exist (condition only) exist, notExist true or false every kind yes yes yes yes
public arePublic, areNotPublic bePublic, notBePublic true or false type, class, interface, attribute, member, field, method, property, function yes reads export: an exported declaration is public, any other internal to its module reads export: an exported declaration is public, any other internal to its module reads the leading underscore: _name is private, any other name public
private arePrivate, areNotPrivate bePrivate, notBePrivate true or false type, class, interface, attribute, member, field, method, property, function yes reads the private and protected modifiers and #private names on class members reads the private and protected modifiers and #private names on class members reads the leading underscore: _name is private, any other name public
protected areProtected, areNotProtected beProtected, notBeProtected true or false type, class, interface, attribute, member, field, method, property, function yes reads the private and protected modifiers and #private names on class members reads the private and protected modifiers and #private names on class members no: the language has only the leading-underscore convention
internal areInternal, areNotInternal beInternal, notBeInternal true or false type, class, interface, attribute, member, field, method, property, function yes reads export: an exported declaration is public, any other internal to its module reads export: an exported declaration is public, any other internal to its module no: the language has only the leading-underscore convention
protectedInternal areProtectedInternal, areNotProtectedInternal beProtectedInternal, notBeProtectedInternal true or false type, class, interface, attribute, member, field, method, property, function yes no: the language has no such access level no: the language has no such access level no: the language has only the leading-underscore convention
privateProtected arePrivateProtected, areNotPrivateProtected bePrivateProtected, notBePrivateProtected true or false type, class, interface, attribute, member, field, method, property, function yes no: the language has no such access level no: the language has no such access level no: the language has only the leading-underscore convention
haveName haveName, doNotHaveName haveName, notHaveName a name or a list every kind yes yes yes yes
haveNameMatching haveNameMatching, doNotHaveNameMatching haveNameMatching, notHaveNameMatching a regular expression every kind yes yes yes yes
haveNameStartingWith haveNameStartingWith, doNotHaveNameStartingWith haveNameStartingWith, notHaveNameStartingWith a name or a list every kind yes yes yes yes
haveNameEndingWith haveNameEndingWith, doNotHaveNameEndingWith haveNameEndingWith, notHaveNameEndingWith a name or a list every kind yes yes yes yes
haveNameContaining haveNameContaining, doNotHaveNameContaining haveNameContaining, notHaveNameContaining a name or a list every kind yes yes yes yes
haveFullName haveFullName, doNotHaveFullName haveFullName, notHaveFullName a name or a list every kind yes yes yes yes
haveFullNameMatching haveFullNameMatching, doNotHaveFullNameMatching haveFullNameMatching, notHaveFullNameMatching a regular expression every kind yes yes yes yes
haveFullNameStartingWith haveFullNameStartingWith, doNotHaveFullNameStartingWith haveFullNameStartingWith, notHaveFullNameStartingWith a name or a list every kind yes yes yes yes
haveFullNameEndingWith haveFullNameEndingWith, doNotHaveFullNameEndingWith haveFullNameEndingWith, notHaveFullNameEndingWith a name or a list every kind yes yes yes yes
haveFullNameContaining haveFullNameContaining, doNotHaveFullNameContaining haveFullNameContaining, notHaveFullNameContaining a name or a list every kind yes yes yes yes
haveAssemblyQualifiedName haveAssemblyQualifiedName, doNotHaveAssemblyQualifiedName haveAssemblyQualifiedName, notHaveAssemblyQualifiedName a name or a list type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
haveAssemblyQualifiedNameMatching haveAssemblyQualifiedNameMatching, doNotHaveAssemblyQualifiedNameMatching haveAssemblyQualifiedNameMatching, notHaveAssemblyQualifiedNameMatching a regular expression type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
haveAssemblyQualifiedNameStartingWith haveAssemblyQualifiedNameStartingWith, doNotHaveAssemblyQualifiedNameStartingWith haveAssemblyQualifiedNameStartingWith, notHaveAssemblyQualifiedNameStartingWith a name or a list type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
haveAssemblyQualifiedNameEndingWith haveAssemblyQualifiedNameEndingWith, doNotHaveAssemblyQualifiedNameEndingWith haveAssemblyQualifiedNameEndingWith, notHaveAssemblyQualifiedNameEndingWith a name or a list type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
haveAssemblyQualifiedNameContaining haveAssemblyQualifiedNameContaining, doNotHaveAssemblyQualifiedNameContaining haveAssemblyQualifiedNameContaining, notHaveAssemblyQualifiedNameContaining a name or a list type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
resideInNamespace resideInNamespace, doNotResideInNamespace resideInNamespace, notResideInNamespace a name or a list every kind yes the namespace is the module's path the namespace is the module's path the namespace is the dotted module path
resideInNamespaceMatching resideInNamespaceMatching, doNotResideInNamespaceMatching resideInNamespaceMatching, notResideInNamespaceMatching a regular expression every kind yes the namespace is the module's path the namespace is the module's path the namespace is the dotted module path
resideInAssembly resideInAssembly, doNotResideInAssembly resideInAssembly, notResideInAssembly a name or a list type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
resideInAssemblyMatching resideInAssemblyMatching, doNotResideInAssemblyMatching resideInAssemblyMatching, notResideInAssemblyMatching a regular expression type, class, interface, attribute, member, field, method, property, function yes no: the language has no assemblies no: the language has no assemblies no: the language has no assemblies
dependOnAny dependOnAny, doNotDependOnAny dependOnAny, notDependOnAny full names, or a nested selector every kind yes yes yes yes
onlyDependOn onlyDependOn, doNotOnlyDependOn onlyDependOn, notOnlyDependOn full names, or a nested selector every kind yes yes yes yes
callAny callAny, doNotCallAny callAny, notCallAny full names, or a nested selector type, class, interface, attribute, member, field, method, property, function yes yes yes no: method bodies are not analysed
haveAnyAttributes haveAnyAttributes, doNotHaveAnyAttributes haveAnyAttributes, notHaveAnyAttributes full names, or a nested selector type, class, interface, attribute, member, field, method, property, function yes reads decorators reads decorators reads decorators
onlyHaveAttributes onlyHaveAttributes, doNotOnlyHaveAttributes onlyHaveAttributes, notOnlyHaveAttributes full names, or a nested selector type, class, interface, attribute, member, field, method, property, function yes reads decorators reads decorators reads decorators
haveAttributeWithArguments haveAttributeWithArguments, doNotHaveAttributeWithArguments haveAttributeWithArguments, notHaveAttributeWithArguments { attribute, arguments: [...] } type, class, interface, attribute, member, field, method, property, function yes reads decorator arguments reads decorator arguments reads decorator arguments
haveAttributeWithNamedArguments haveAttributeWithNamedArguments, doNotHaveAttributeWithNamedArguments haveAttributeWithNamedArguments, notHaveAttributeWithNamedArguments { attribute, arguments: { name: value } } type, class, interface, attribute, member, field, method, property, function yes reads decorator arguments reads decorator arguments reads decorator arguments
haveAnyAttributesWithArguments haveAnyAttributesWithArguments, doNotHaveAnyAttributesWithArguments haveAnyAttributesWithArguments, notHaveAnyAttributesWithArguments a list of argument values type, class, interface, attribute, member, field, method, property, function yes reads decorator arguments reads decorator arguments reads decorator arguments
haveAnyAttributesWithNamedArguments haveAnyAttributesWithNamedArguments, doNotHaveAnyAttributesWithNamedArguments haveAnyAttributesWithNamedArguments, notHaveAnyAttributesWithNamedArguments { name: value } type, class, interface, attribute, member, field, method, property, function yes reads decorator arguments reads decorator arguments reads decorator arguments
assignableTo areAssignableTo, areNotAssignableTo beAssignableTo, notBeAssignableTo full names, or a nested selector type, class, interface, attribute yes reads extends and implements reads extends and implements reads base classes
implementInterface implementInterface, doNotImplementInterface implementInterface, notImplementInterface full names, or a nested selector type, class, interface, attribute yes reads extends and implements reads extends and implements reads base classes
implementAnyInterfaces implementAnyInterfaces, doNotImplementAnyInterfaces, implementAny implementAnyInterfaces, notImplementAnyInterfaces, implementAny full names, or a nested selector type, class, interface, attribute yes reads extends and implements reads extends and implements reads base classes
enums areEnums, areNotEnums beEnums, notBeEnums true or false type, class, interface, attribute yes yes yes no: enumerations are ordinary classes
structs areStructs, areNotStructs beStructs, notBeStructs true or false type, class, interface, attribute yes no: the language has no value types no: the language has no value types no: the language has no value types
valueTypes areValueTypes, areNotValueTypes beValueTypes, notBeValueTypes true or false type, class, interface, attribute yes no: the language has no value types no: the language has no value types no: the language has no value types
nested areNested, areNotNested beNested, notBeNested true or false type, class, interface, attribute yes yes yes yes
nestedIn areNestedIn, areNotNestedIn beNestedIn, notBeNestedIn full names, or a nested selector type, class, interface, attribute yes yes yes yes
haveMemberWithName haveMemberWithName, doNotHaveMemberWithName haveMemberWithName, notHaveMemberWithName a name or a list type, class, interface, attribute yes yes yes yes
haveFieldMemberWithName haveFieldMemberWithName, doNotHaveFieldMemberWithName haveFieldMemberWithName, notHaveFieldMemberWithName a name or a list type, class, interface, attribute yes yes yes yes
haveMethodMemberWithName haveMethodMemberWithName, doNotHaveMethodMemberWithName haveMethodMemberWithName, notHaveMethodMemberWithName a name or a list type, class, interface, attribute yes yes yes yes
havePropertyMemberWithName havePropertyMemberWithName, doNotHavePropertyMemberWithName havePropertyMemberWithName, notHavePropertyMemberWithName a name or a list type, class, interface, attribute yes yes yes yes
abstract areAbstract, areNotAbstract beAbstract, notBeAbstract true or false type, class, interface, attribute, member, method, property yes yes yes an ABC base or an @abstractmethod
sealed areSealed, areNotSealed beSealed, notBeSealed true or false type, class, attribute yes no: the language cannot forbid subclassing no: the language cannot forbid subclassing no: the language cannot forbid subclassing
record areRecord, areNotRecord beRecord, notBeRecord true or false type, class, attribute yes no: the language has no record types no: the language has no record types no: the language has no record types
immutable areImmutable, areNotImmutable beImmutable, notBeImmutable true or false type, class, interface, attribute, member, field, method, property yes reads readonly fields and get-only accessors reads readonly fields and get-only accessors @dataclass(frozen=True)
generic areGeneric, areNotGeneric beGeneric, notBeGeneric true or false type, class, interface, attribute yes yes yes no: generic parameters are not recorded
declaredIn areDeclaredIn, areNotDeclaredIn beDeclaredIn, notBeDeclaredIn full names, or a nested selector member, field, method, property yes yes yes yes
static areStatic, areNotStatic beStatic, notBeStatic true or false type, class, interface, attribute, member, field, method, property yes yes yes @staticmethod and @classmethod
readOnly areReadOnly, areNotReadOnly beReadOnly, notBeReadOnly true or false member, field, property yes reads readonly fields and get-only accessors reads readonly fields and get-only accessors a @property without a setter
constructor areConstructor, areNotConstructor, areConstructors, areNoConstructors beConstructor, notBeConstructor, beNoConstructor true or false member, method yes yes yes __init__
virtual areVirtual, areNotVirtual beVirtual, notBeVirtual true or false member, method, property yes no: every method can be overridden no: every method can be overridden no: every method can be overridden
haveReturnType haveReturnType, doNotHaveReturnType haveReturnType, notHaveReturnType full names, or a nested selector member, method yes reads the return type annotation reads the return type annotation no: return annotations are not recorded
haveDependencyInMethodBodyTo haveDependencyInMethodBodyTo, doNotHaveDependencyInMethodBodyTo haveDependencyInMethodBodyTo, notHaveDependencyInMethodBodyTo full names, or a nested selector member, method yes reads new expressions in method bodies reads new expressions in method bodies no: method bodies are not analysed
calledBy areCalledBy, areNotCalledBy beCalledBy, notBeCalledBy full names, or a nested selector member, method yes yes yes no: method bodies are not analysed
haveGetter haveGetter, doNotHaveGetter, haveNoGetter haveGetter, notHaveGetter, haveNoGetter true or false member, property yes reads get and set accessors reads get and set accessors @property and @name.setter
haveSetter haveSetter, doNotHaveSetter, haveNoSetter haveSetter, notHaveSetter, haveNoSetter true or false member, property yes reads get and set accessors reads get and set accessors @property and @name.setter
haveInitOnlySetter haveInitOnlySetter, doNotHaveInitOnlySetter, haveInitSetter haveInitOnlySetter, notHaveInitOnlySetter, haveInitSetter true or false member, property yes no: the language has no init-only setters no: the language has no init-only setters no: accessors have no access level of their own
havePublicGetter havePublicGetter, doNotHavePublicGetter havePublicGetter, notHavePublicGetter true or false member, property yes reads get and set accessors reads get and set accessors no: accessors have no access level of their own
haveProtectedGetter haveProtectedGetter, doNotHaveProtectedGetter haveProtectedGetter, notHaveProtectedGetter true or false member, property yes reads get and set accessors reads get and set accessors no: accessors have no access level of their own
haveInternalGetter haveInternalGetter, doNotHaveInternalGetter haveInternalGetter, notHaveInternalGetter true or false member, property yes no: the language has no such access level no: the language has no such access level no: accessors have no access level of their own
haveProtectedInternalGetter haveProtectedInternalGetter, doNotHaveProtectedInternalGetter haveProtectedInternalGetter, notHaveProtectedInternalGetter true or false member, property yes no: the language has no such access level no: the language has no such access level no: accessors have no access level of their own
havePrivateGetter havePrivateGetter, doNotHavePrivateGetter havePrivateGetter, notHavePrivateGetter true or false member, property yes reads get and set accessors reads get and set accessors no: accessors have no access level of their own
havePrivateProtectedGetter havePrivateProtectedGetter, doNotHavePrivateProtectedGetter havePrivateProtectedGetter, notHavePrivateProtectedGetter true or false member, property yes no: the language has no such access level no: the language has no such access level no: accessors have no access level of their own
havePublicSetter havePublicSetter, doNotHavePublicSetter havePublicSetter, notHavePublicSetter true or false member, property yes reads get and set accessors reads get and set accessors no: accessors have no access level of their own
haveProtectedSetter haveProtectedSetter, doNotHaveProtectedSetter haveProtectedSetter, notHaveProtectedSetter true or false member, property yes reads get and set accessors reads get and set accessors no: accessors have no access level of their own
haveInternalSetter haveInternalSetter, doNotHaveInternalSetter haveInternalSetter, notHaveInternalSetter true or false member, property yes no: the language has no such access level no: the language has no such access level no: accessors have no access level of their own
haveProtectedInternalSetter haveProtectedInternalSetter, doNotHaveProtectedInternalSetter haveProtectedInternalSetter, notHaveProtectedInternalSetter true or false member, property yes no: the language has no such access level no: the language has no such access level no: accessors have no access level of their own
havePrivateSetter havePrivateSetter, doNotHavePrivateSetter havePrivateSetter, notHavePrivateSetter true or false member, property yes reads get and set accessors reads get and set accessors no: accessors have no access level of their own
havePrivateProtectedSetter havePrivateProtectedSetter, doNotHavePrivateProtectedSetter havePrivateProtectedSetter, notHavePrivateProtectedSetter true or false member, property yes no: the language has no such access level no: the language has no such access level no: accessors have no access level of their own
adhereToPlantUmlDiagram (condition only) adhereToPlantUmlDiagram, notAdhereToPlantUmlDiagram a .puml file type, class, interface, attribute, function yes yes yes yes