Package-level declarations

Types

Link copied to clipboard

Converts C (or, opt-in, simple C++) header function prototypes into Context, for components whose only interface evidence is a .h/.hpp API (no SYML): typically MCAL wrappers, shared libraries and low-level services. A prototype alone does not establish whether its implementation belongs to this component or another component, so this reader retains neutral Method definitions. Each public header file becomes one ServicePort (a purely structural grouping, matching e.g. PecuswContext.kt's own use of it), declared directly on the Component; each function prototype becomes one Method inside it, with the full raw signature retained in Method.functionType. Both are already InterfacePoints (ServiceInterfaceMember : InterfacePoint), so a Method is directly referenceable from an InterfacePointAnalysis without any wrapping. Explicit private/internal header names and test directories are excluded. Parsing itself is delegated to CHeaderSyntax (vendored ANTLR grammars).

Link copied to clipboard
data class CodeModelSource(val module: String, val inventory: File, val elementId: String? = null) : Serializable
Link copied to clipboard

Per-field policy for description/asil on Context entities, independent of the owning viewpoint's ModelImportMode. PRESERVE_IF_SOURCE_EMPTY keeps an existing canonical declaration's value when the freshly imported one (SYML, C header, or native Highway) has none for that entity, at any depth (the element itself and every nested Context declaration: ports, service interfaces, methods, fields, parameters); it never overwrites an existing value with an empty one, and never invents a value neither side has.

Link copied to clipboard

JSON encoding of canonical Highway constructors, declarations and identity references.

Link copied to clipboard
data class MarkdownExport(val modules: Set<String> = emptySet(), val viewpoints: Set<Viewpoint> = emptySet(), val output: File, val includeReverseRelations: Boolean = true, val configFile: File? = null, val updateNavigation: Boolean = false, val navParent: List<String> = emptyList(), val navBranches: Map<String, String> = emptyMap(), val navRoots: List<String> = emptyList(), val failOnUnresolvedLinks: Boolean = false, val includeChildAnalyses: Boolean = false, val modelTocLabels: ModelLabelMode = ModelLabelMode.ID, val publishing: MkDocsPublishingConfig = MkDocsPublishingConfig(), val analysisInterfaceGrouping: InterfaceGrouping = InterfaceGrouping.NONE) : Serializable

Selects canonical elements to render as Markdown pages, one file per element/viewpoint.

Link copied to clipboard

Generates human-readable Markdown from a metamodel tree.

Link copied to clipboard

Renders selected canonical elements as nested MkDocs admonitions using Dokka's model presentation rules.

Link copied to clipboard
data class MissingModelModule(val element: String, val sourceIdentity: String, val originalPaths: List<String>, val targetDirectory: String?, val initializationCommand: String?, val bindingSuggestion: String? = null)
Link copied to clipboard

Reads YAML nodes without constructing MkDocs' Python objects or evaluating custom tags.

Link copied to clipboard
data class MkDocsPublishingConfig(val currentPath: String = "", val versionsSubdir: String = "versions", val schemaVersion: Int = 1) : Serializable

Publication paths exported with the model for the destination MkDocs site's publisher.

Link copied to clipboard
Link copied to clipboard
data class ModelCandidate(val destination: File, val content: String, val element: String, val viewpoint: Viewpoint)
Link copied to clipboard
data class ModelDeclaration(val file: File, val symbol: ModelSymbol, val className: String?)
Link copied to clipboard
data class ModelExport(val what: ModelExportSubject = ModelExportSubject.MODEL, val format: ModelFormat = ModelFormat.HIGHWAY_JSON, val modules: Set<String> = emptySet(), val elements: Set<String> = emptySet(), val viewpoints: Set<Viewpoint> = emptySet(), val output: File) : Serializable
Link copied to clipboard
class ModelExporter(bindings: ModelBindings)

Selects canonical roots; the shared native codec owns serialization and reference handling.

Link copied to clipboard
Link copied to clipboard

Explicit, ordered import. HIGH findings do not prevent importing the resolvable specifications.

Link copied to clipboard
Link copied to clipboard
data class ModelImportResult(val generated: List<String>, val written: List<String>, val missingModules: List<MissingModelModule>, val diagnostics: List<ModelDiagnostic>)
Link copied to clipboard
data class ModelInput(val format: ModelFormat, val roots: List<ModelRoot> = emptyList(), val files: List<File> = emptyList(), val definitions: List<File> = emptyList(), val viewpoints: Set<Viewpoint> = emptySet(), val elementType: ElementType = ElementType.COMPONENT, val elements: Set<String> = emptySet(), val bindings: Map<String, String> = emptyMap(), val sharedDefinitionsOwner: String? = null, val excludes: List<String> = listOf("**/test/**", "**/tests/**"), val modules: Set<String> = emptySet(), val codeSources: List<CodeModelSource> = emptyList(), val context: ModelImportMode = if (Viewpoint.CONTEXT in viewpoints) ModelImportMode.OVERWRITE else ModelImportMode.SKIP, val missingInterfacePoints: MissingInterfacePointPolicy = MissingInterfacePointPolicy.REPORT, val interfacesModule: String? = null, val descriptionMode: FieldImportMode = if (context == ModelImportMode.COMPLEMENT_WITH_DESCRIPTION_AND_ASIL) FieldImportMode.PRESERVE_IF_SOURCE_EMPTY else FieldImportMode.OVERWRITE, val asilMode: FieldImportMode = if (context == ModelImportMode.COMPLEMENT_WITH_DESCRIPTION_AND_ASIL) FieldImportMode.PRESERVE_IF_SOURCE_EMPTY else FieldImportMode.OVERWRITE, val headerLanguage: CHeaderLanguage = com.stigway.engine.specification.cheader.CHeaderLanguage.C) : Serializable

Import routing and selection; engineering properties belong to canonical Highway classes.

Link copied to clipboard
Link copied to clipboard
data class ModelKotlinResult(val candidates: List<ModelCandidate>, val diagnostics: List<ModelDiagnostic>)
Link copied to clipboard

Renders canonical constructor properties and declared children; there are no per-viewpoint DTOs.

Link copied to clipboard
data class ModelModule(val path: String, val directory: File, val sourceDirectories: List<File>, val packageName: String = "", val modelLibrary: Boolean = false) : Serializable
Link copied to clipboard
data class ModelRoot(val source: File, val into: String) : Serializable
Link copied to clipboard
data class ModelSymbol(val packageName: String, val root: String, val members: List<String> = emptyList(), val kind: ModelKind)

Symbols are obtained from compiled Kotlin declarations, never evaluated from incoming strings.

Link copied to clipboard
data class ModelTarget(val element: Element, val module: ModelModule, val symbol: ModelSymbol, val contextFile: File, val className: String, val viewpoints: Map<String, ModelDeclaration> = emptyMap())
Link copied to clipboard
data class ModelWriteRoot(val entity: MetamodelEntity, val target: ModelTarget?, val viewpoint: Viewpoint, val symbol: ModelSymbol? = null, val interfacesModule: ModelModule? = null)
Link copied to clipboard
data class StigComponentEntryPoint(val name: String = "", val demangledName: String? = null)

Entry point for the analysis (typically Activity::Step()).

Link copied to clipboard
data class StigComponentInterfacePoint(val mode: StigComponentInterfacePointMode = StigComponentInterfacePointMode.TOPIC, val direction: StigComponentInterfacePointDirection = StigComponentInterfacePointDirection.SOURCE, val topic: String = "", val field: String? = null, val name: String = "", val demangledName: String? = null, val ret: Boolean = false, val params: List<Int> = emptyList(), val asil: String? = null)

A single interface point (source or sink) with its LLVM symbol.

Link copied to clipboard
data class StigComponentInterfacePointsFile(val componentName: String = "", val points: List<StigComponentInterfacePoint> = emptyList(), val entryPoints: List<StigComponentEntryPoint> = emptyList())

Resolved interface-point list for a single STIG element.

Link copied to clipboard

Converts declaration structure and retains exact source evidence for attributes outside Highway.

Link copied to clipboard
data class UnresolvedMarkdownRelation(val page: String, val sourceId: String, val relation: String, val targetId: String, val targetName: String)

A relation rendered as text because its target has no exported page/anchor.

Properties

Link copied to clipboard

Functions

Link copied to clipboard

One copyable command block, followed by mapping proposals that require an explicit identity choice.

Generated with STIG