Package-level declarations

Types

Link copied to clipboard
data class Aggregate(val scopes: Set<String> = linkedSetOf(), val type: String? = null, val tenantId: String? = null, val id: String? = null, val commands: Set<String> = linkedSetOf(), val events: Set<String> = linkedSetOf()) : NamingScopes, Merge<Aggregate>

Configuration for an aggregate within a bounded context. Defines the aggregate's type, scopes, commands, events, and other metadata.

Link copied to clipboard
data class BoundedContext(val alias: String? = null, val description: String = "", val scopes: Set<String> = linkedSetOf(), val aggregates: Map<String, Aggregate> = emptyMap()) : NamingScopes, Merge<BoundedContext> , DescriptionCapable

Configuration for a bounded context, containing aggregates and their metadata. A bounded context represents a logical boundary within the domain model.

Link copied to clipboard
interface Merge<T>

Interface for objects that can be merged with others of the same type. Used for combining metadata from multiple sources.

Link copied to clipboard
interface NamingScopes

Interface for entities that have package scopes. Scopes define the packages that belong to this entity.

Link copied to clipboard

Comparator for sorting package scopes by depth (number of dots) and length. Used to prioritize more specific scopes over general ones.

Link copied to clipboard
interface ScopeSearcher<V : Any> : SortedMap<String, V>

Interface for searching values by package scope strings. Supports hierarchical scope matching where more specific scopes take precedence.

Link copied to clipboard
data class WowMetadata(val contexts: Map<String, BoundedContext> = emptyMap()) : Merge<WowMetadata>

Root metadata class containing all bounded context configurations. WowMetadata represents the complete configuration for all bounded contexts and their aggregates.