ElementCatalogScope

Additive-only nomination surface handed to a model element's ModelElement.specifyCatalog override. An element nominates the inputs and outputs it considers salient — preferably by passing the object instances it already holds (a control, response, counter, random variable, or a property of one of its own model elements), so keys and names are derived rather than hand-formatted. String-keyed forms are available as well.

The instance forms are interface defaults that delegate to the three core string-keyed methods; an implementation need only provide those three.

Inheritors

Functions

Link copied to clipboard
abstract fun input(key: String, configure: NominationSpec.() -> Unit = {})

Nominate a numeric/string/JSON control by its key ("elementName.propertyName").

open fun input(control: ControlIfc, configure: NominationSpec.() -> Unit = {})

Nominate a numeric/boolean control the element already holds.

open fun input(control: JsonControlIfc, configure: NominationSpec.() -> Unit = {})

Nominate a JSON control the element already holds.

open fun input(control: StringControlIfc, configure: NominationSpec.() -> Unit = {})

Nominate a string control the element already holds.

open fun <T : ModelElement> input(element: T, property: KProperty1<T, *>, configure: NominationSpec.() -> Unit = {})

Nominate a control by element plus a property reference, e.g. input(server, Server::numServers).

open fun input(element: ModelElement, propertyName: String, configure: NominationSpec.() -> Unit = {})

Nominate a control by its owning element plus the annotated property's name.

Link copied to clipboard
abstract fun output(name: String, configure: NominationSpec.() -> Unit = {})

Nominate a response or counter by name.

open fun output(counter: CounterCIfc, configure: NominationSpec.() -> Unit = {})

Nominate a counter the element already holds.

open fun output(response: ResponseCIfc, configure: NominationSpec.() -> Unit = {})

Nominate a response the element already holds.

Link copied to clipboard
abstract fun rvParameter(rvName: String, paramName: String, configure: NominationSpec.() -> Unit = {})

Nominate a random-variable parameter (e.g. rvParameter("ServiceTimeRV", "mean")).

open fun rvParameter(rv: RandomVariableCIfc, paramName: String, configure: NominationSpec.() -> Unit = {})

Nominate a random-variable parameter; the RV's name comes from the object.