StigExtension
Project-phase STIG extension. Created per-project by StigPlugin.apply().
IMPORTANT: This class must NOT store a Project reference as a field. Task closures capture extension (this object); if it held a Project, Gradle's configuration cache would fail when serializing those tasks. All Project-dependent values are resolved eagerly during construction and stored as plain values or Gradle managed types (Property/DirectoryProperty).
Properties
Optional list of annotation files.
Reverse-domain prefix prepended to synthesized Kotlin packages. Empty when unset.
Project-level defaults for diagram output formats. Acts as the middle layer in the element → group → defaults cascade. Unset fields here fall through to the factory (true for every format).
Per-module element configuration captured from stig { element { ... } } blocks. Null until the consumer configures it.
Optional directory containing interface definition files.
Interface point mode (sources or interface files).
Default placement for viewpoints.
Project root directory used for path resolution. Defaults to the root project directory.
Resolved repository locations (publish source repos, Dokka repo info). Derived from the DSL-configured repos; computed once at extension creation.
Functions
Module-wide check policy, including libraries without an element block.
Returns the analyzer's --repo NAME=PATH map: every DSL-configured repo (under stigProject { repos { … } }) whose implementationRoot resolves to a directory on disk. Falls back to a single entry { rootProject.name → rootDir } when no repos are configured so single-repo projects work with zero DSL setup.
Returns the merged BazelBuildConfig for this element by cascading defaults → repo → group → element, following the same merge order as com.stigway.gradle.config.resolveProjectStigElement. Returns null when no bazel config is set at any level.
Resolves defaults/group/element activations against the project registry.
Resolves defaults/group/element activations against the project registry.
Resolves diagram outputs through element → group → defaults → factory.
The element's configured ASIL, cascaded element → group → defaults. null if never declared at any level. The diagram pipeline compares this against the propagated (MAX-of-contents) ASIL and flags a mismatch.
The element type after the element -> group -> defaults cascade.
Resolves the single effective pipeline failure threshold for this element.
Resolves modelCheck { } via defaults → group → element → module. Unset viewpoint fields inherit independently; final task default is enabled=true.
Resolves analyzer Z3 path-feasibility mode through the same element → group → defaults cascade as other code-analysis knobs.
Resolves P3 compile-database filtering by cascading defaults → group → element. Each parameter is inherited independently: a lower-level mode does not reset inherited includes/excludes, and an explicitly assigned empty list clears the inherited list for that parameter.
Resolves the repo root directory for the current element, using the element → group → defaults cascade to find the source profile, then looking up the implementationRoot from the project config context.
Resolves P4 compilation-scope selection by cascading defaults → group → element.
Resolves the effective source-code analysis toggles by cascading element → group → defaults → project-wide sourceCodeAnalysis { }.
Resolves P7 source-code selection by cascading defaults → group → element.
Resolves the effective StubsConfig for this element by cascading defaults → group → element. Each property cascades independently; an explicitly assigned empty list clears only that inherited list.
Resolves whether Bazel C++ action inputs should invalidate source-code analysis. The value cascades with the rest of bazel { }; final default is true.