object AST
Abstract Syntax Tree This object defines the model for processing RIDDL and producing a raw AST from it. This raw AST has no referential integrity, it just results from applying the parsing rules to the input. The RawAST models produced from parsing are syntactically correct but have no semantic validation. The Transformation passes convert RawAST model to AST model which is referentially and semantically consistent (or the user gets an error).
- Alphabetic
- By Inheritance
- AST
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- case class Abstract(loc: Location) extends PredefinedType with Product with Serializable
The simplest type expression: Abstract An abstract type expression is one that is not defined explicitly.
The simplest type expression: Abstract An abstract type expression is one that is not defined explicitly. It is treated as a concrete type but without any structural or type information. This is useful for types that are defined only at implementation time or for types whose variations are so complicated they need to remain abstract at the specification level.
- loc
The location of the Bool type expression
- sealed trait Action extends DescribedValue
Base class for all actions.
- sealed trait Adaptation extends AdaptorDefinition with ParentDefOf[Example]
- case class Adaptor(loc: Location, id: Identifier, ref: ContextRef, adaptations: Seq[Adaptation] = Seq.empty[Adaptation], includes: Seq[Include] = Seq.empty[Include], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[AdaptorDefinition] with ContextDefinition with WithIncludes with Product with Serializable
Definition of an Adaptor.
Definition of an Adaptor. Adaptors are defined in Contexts to convert messages from another bounded context. Adaptors translate incoming messages into corresponding messages using the ubiquitous language of the defining bounded context. There should be one Adapter for each external Context
- loc
Location in the parsing input
- id
Name of the adaptor
- ref
A reference to the bounded context from which messages are adapted
- adaptations
A set of AdaptorDefinitions that indicate what to do when messages occur.
- brief
A brief description (one sentence) for use in documentation
- description
Optional description of the adaptor.
- sealed trait AdaptorDefinition extends Definition
Base trait of any definition that is in the content of an adaptor
- case class AggregateConstructionExpression(loc: Location, msg: TypeRef, args: ArgList = ArgList()) extends Expression with Product with Serializable
A helper class for creating aggregates and messages that represents the construction of the message or aggregate value from parameters
A helper class for creating aggregates and messages that represents the construction of the message or aggregate value from parameters
- msg
A message reference that specifies the specific type of message to construct
- args
An argument list that should correspond to teh fields of the message
- trait AggregateTypeExpression extends TypeExpression with Container[Field]
A type expression that contains an aggregation of fields
A type expression that contains an aggregation of fields
This is used as the base trait of Aggregations and Messages
- case class Aggregation(loc: Location, fields: Seq[Field] = Seq.empty[Field]) extends AggregateTypeExpression with Product with Serializable
A type expression that takes a set of named fields as its value.
A type expression that takes a set of named fields as its value.
- loc
The location of the aggregation definition
- fields
The fields of the aggregation
- case class Alternation(loc: Location, of: Seq[TypeExpression]) extends TypeExpression with Product with Serializable
A type expression that that defines its range of possible values as being any one of the possible values from a set of other type expressions.
A type expression that that defines its range of possible values as being any one of the possible values from a set of other type expressions.
- loc
The location of the alternation type expression
- of
The set of type expressions from which the value for this alternation may be chosen
- case class AndCondition(loc: Location, conditions: Seq[Condition]) extends MultiCondition with Product with Serializable
And condition
And condition
- loc
Location of the and condition
- conditions
The conditions (minimum 2) that must all be true for "and" to be true
- case class ArbitraryAction(loc: Location, what: LiteralString, description: Option[Description]) extends SagaStepAction with Product with Serializable
An action whose behavior is specified as a text string allowing extension to arbitrary actions not otherwise handled by RIDDL's syntax.
An action whose behavior is specified as a text string allowing extension to arbitrary actions not otherwise handled by RIDDL's syntax.
- loc
The location where the action occurs in the source
- what
The action to take (emitted as pseudo-code)
- description
An optional description of the action
- case class ArbitraryExpression(cond: LiteralString) extends Expression with Condition with Product with Serializable
Represents an arbitrary expression that is specified merely with a literal string.
Represents an arbitrary expression that is specified merely with a literal string. This can't be easily processed downstream but provides the author with the ability to include arbitrary ideas/concepts into an expression or condition For example:
example foo { when "the timer has expired" }
shows the use of an arbitrary condition for the "when" part of a Gherkin example. Or
+(42,"number of widgets in a wack-a-mole")
shows the use of an arbitrary expression as the operand to an addition.
Note that since the expression is arbitrary, it could be a boolean value and is thus considered to be a conditional expression too, hence the name.
- cond
The arbitrary condition provided as a quoted string
- case class ArgList(args: ListMap[Identifier, Expression] = ListMap
.empty[Identifier, Expression]) extends RiddlNode with Product with SerializableThe arguments of a FunctionCallExpression and AggregateConstructionExpression is a mapping between an argument name and the expression that provides the value for that argument.
The arguments of a FunctionCallExpression and AggregateConstructionExpression is a mapping between an argument name and the expression that provides the value for that argument.
- args
A mapping of Identifier to Expression to provide the arguments for the function call.
- case class ArithmeticOperator(loc: Location, operator: String, operands: Seq[Expression]) extends Expression with Product with Serializable
Represents the use of an arithmetic operator or well-known function call.
Represents the use of an arithmetic operator or well-known function call. The operator can be simple like addition or subtraction or complicated like pow, sqrt, etc. There is no limit on the number of operands but defining them shouldn't be necessary as they are pre-determined by use of the name of the operator (e.g. pow takes two floating point numbers, sqrt takes one.
- loc
The location of the operator
- operator
The name of the operator (+, -, sqrt, ...)
- operands
A list of expressions that correspond to the required operands for the operator
- case class AskAction(loc: Location, entity: EntityRef, msg: MessageConstructor, description: Option[Description] = None) extends SagaStepAction with Product with Serializable
An action that asks a query to an entity.
An action that asks a query to an entity. This is very analogous to the ask operator in Akka.
- loc
The location of the ask action
- entity
The entity to which the message is directed
- msg
A constructed message value to send to the entity, probably a query
- description
An optional description of the action.
- case class AuthorInfo(loc: Location, id: Identifier, name: LiteralString, email: LiteralString, organization: Option[LiteralString] = None, title: Option[LiteralString] = None, url: Option[java.net.URL] = None, brief: Option[LiteralString] = None, description: Option[Description] = None) extends DomainDefinition with Product with Serializable
A RiddlValue that holds the author's information
A RiddlValue that holds the author's information
- loc
The location of the author information
- name
The full name of the author
The author's email address
- organization
The name of the organization the author is associated with
- title
The author's title within the organization
- url
A URL associated with the author
- case class BecomeAction(loc: Location, entity: EntityRef, handler: HandlerRef, description: Option[Description] = None) extends Action with Product with Serializable
An action that changes the behavior of an entity by making it use a new handler for its messages; named for the "become" operation in Akka that does the same for an actor.
An action that changes the behavior of an entity by making it use a new handler for its messages; named for the "become" operation in Akka that does the same for an actor.
- loc
The location in the source of the become action
- entity
The entity whose behavior is to change
- handler
The reference to the new handler for the entity
- description
An optional description of this action
- case class BlockDescription(loc: Location = Location.empty, lines: Seq[LiteralString] = Seq.empty[LiteralString]) extends Description with Product with Serializable
- case class Bool(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for boolean values (true / false)
A predefined type expression for boolean values (true / false)
- loc
The location of the Bool type expression
- sealed trait BrieflyDescribedValue extends RiddlValue
- case class ButClause(loc: Location, action: Action) extends GherkinClause with Product with Serializable
A GherkinClause for the But part of a Gherkin Example.
A GherkinClause for the But part of a Gherkin Example. This part specifies what should be done if the WhenClause evaluates to false.
- loc
The location of the But clause
- action
The action to be performed
- sealed trait Cardinality extends TypeExpression
Base trait of the cardinality type expressions
- case class CommandCommandA8n(loc: Location, id: Identifier, messageRef: CommandRef, command: CommandRef, examples: Seq[Example] = Seq.empty[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends Adaptation with Product with Serializable
The specification of a single adaptation based on message
The specification of a single adaptation based on message
- loc
The location of the adaptation definition
- id
The name of the adaptation
- messageRef
The command that triggers the adaptation, inherited from Adaptation
- command
The command resulting from the adaptation of the messageRef to the bounded context
- examples
Optional set of Gherkin Examples to define the adaptation
- brief
A brief description (one sentence) for use in documentation
- description
Optional description of the adaptation.
- case class CommandRef(loc: Location, id: PathIdentifier) extends Reference[Type] with MessageRef with Product with Serializable
A Reference to a command type
A Reference to a command type
- loc
The location of the reference
- id
The path identifier to the event type
- sealed trait Comparator extends RiddlNode
- case class Comparison(loc: Location, op: Comparator, expr1: Expression, expr2: Expression) extends Condition with Product with Serializable
Represents one of the six comparison operators
Represents one of the six comparison operators
- loc
Location of the comparison
- op
The comparison operator
- expr1
The first operand in the comparison
- expr2
The second operand in the comparison
- case class CompoundAction(loc: Location, actions: Seq[Action], description: Option[Description] = None) extends Action with Product with Serializable
An action that is a set of other actions.
An action that is a set of other actions.
- loc
The location of the compound action
- actions
The actions in the compound group of actions
- description
An optional description for the action
- sealed trait Condition extends Expression
Base trait for expressions that yield a boolean value (a condition)
- sealed trait Container[+D <: RiddlValue] extends RiddlValue
Base trait of any definition that is also a ContainerValue
Base trait of any definition that is also a ContainerValue
- D
The kind of definition that is contained by the container
- case class Context(loc: Location, id: Identifier, options: Seq[ContextOption] = Seq.empty[ContextOption], types: Seq[Type] = Seq.empty[Type], entities: Seq[Entity] = Seq.empty[Entity], adaptors: Seq[Adaptor] = Seq.empty[Adaptor], sagas: Seq[Saga] = Seq.empty[Saga], processors: Seq[Processor] = Seq.empty[Processor], functions: Seq[Function] = Seq.empty[Function], terms: Seq[Term] = Seq.empty[Term], includes: Seq[Include] = Seq.empty[Include], handlers: Seq[Handler] = Seq.empty[Handler], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[ContextDefinition] with DomainDefinition with OptionsDef[ContextOption] with WithIncludes with WithTerms with Product with Serializable
A bounded context definition.
A bounded context definition. Bounded contexts provide a definitional boundary on the language used to describe some aspect of a system. They imply a tightly integrated ecosystem of one or more microservices that share a common purpose. Context can be used to house entities, read side projections, sagas, adaptations to other contexts, apis, and etc.
- loc
The location of the bounded context definition
- id
The name of the context
- options
The options for the context
- types
Types defined for the scope of this context
- entities
Entities defined for the scope of this context
- adaptors
Adaptors to messages from other contexts
- sagas
Sagas with all-or-none semantics across various entities
- functions
Features specified for the context
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the context
- sealed trait ContextDefinition extends Definition
Base trait of any definition that is in the content of a context
- sealed trait ContextOption extends OptionValue
Base trait for all options a Context can have.
- case class ContextRef(loc: Location, id: PathIdentifier) extends Reference[Context] with Product with Serializable
A reference to a bounded context
A reference to a bounded context
- loc
The location of the reference
- id
The path identifier for the referenced context
- case class Date(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a calendar date.
A predefined type expression for a calendar date.
- loc
The location of the date type expression.
- case class DateTime(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a calendar date and clock time combination.
A predefined type expression for a calendar date and clock time combination.
- loc
The location of the datetime type expression.
- case class Decimal(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a decimal value including IEEE floating point syntax.
A predefined type expression for a decimal value including IEEE floating point syntax.
- loc
The location of the decimal integer type expression
- sealed trait Definition extends DescribedValue with BrieflyDescribedValue
Base trait for all definitions requiring an identifier for the definition and providing the identify method to yield a string that provides the kind and name
- sealed trait DescribedValue extends RiddlValue
Base trait of all values that have an optional Description
- trait Description extends RiddlValue
The description of a definition.
The description of a definition. All definitions have a name and an optional description. This class provides the description part.
- case class Domain(loc: Location, id: Identifier, authors: Seq[AuthorInfo] = Seq.empty[AuthorInfo], types: Seq[Type] = Seq.empty[Type], contexts: Seq[Context] = Seq.empty[Context], plants: Seq[Plant] = Seq.empty[Plant], stories: Seq[Story] = Seq.empty[Story], domains: Seq[Domain] = Seq.empty[Domain], terms: Seq[Term] = Seq.empty[Term], includes: Seq[Include] = Seq.empty[Include], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[DomainDefinition] with DomainDefinition with WithIncludes with WithTerms with Product with Serializable
The definition of a domain.
The definition of a domain. Domains are the highest building block in RIDDL and may be nested inside each other to form a hierarchy of domains. Generally, domains follow hierarchical organization structure but other taxonomies and ontologies may be modelled with domains too.
- loc
The location of the domain definition
- id
The name of the domain
- types
The types defined in the scope of the domain
- contexts
The contexts defined in the scope of the domain
- plants
The plants defined in the scope of the domain
- domains
Nested sub-domains within this domain
- terms
Definition of terms pertaining to this domain that provide explanation of concepts from the domain.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the domain.
- sealed trait DomainDefinition extends Definition
Base trait of any definition that is in the content of a domain
- case class DomainRef(loc: Location, id: PathIdentifier) extends Reference[Domain] with Product with Serializable
A reference to a domain definition
A reference to a domain definition
- loc
The location at which the domain definition occurs
- id
The path identifier for the referenced domain.
- case class Duration(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a time duration that records the number of milliseconds between two fixed points in time
A predefined type expression for a time duration that records the number of milliseconds between two fixed points in time
- loc
The location of the duration type expression
- case class Entity(loc: Location, id: Identifier, options: Seq[EntityOption] = Seq.empty[EntityOption], states: Seq[State] = Seq.empty[State], types: Seq[Type] = Seq.empty[Type], handlers: Seq[Handler] = Seq.empty[Handler], functions: Seq[Function] = Seq.empty[Function], invariants: Seq[Invariant] = Seq.empty[Invariant], includes: Seq[Include] = Seq.empty[Include], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[EntityDefinition] with ContextDefinition with OptionsDef[EntityOption] with WithIncludes with Product with Serializable
Definition of an Entity
Definition of an Entity
- loc
The location in the input
- id
The name of the entity
- options
The options for the entity
- states
The state values of the entity
- types
Type definitions useful internally to the entity definition
- handlers
A set of event handlers
- functions
Utility functions defined for the entity
- invariants
Invariant properties of the entity
- brief
A brief description (one sentence) for use in documentation
- description
Optional description of the entity
- case class EntityAggregate(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity is an aggregate root entity through which all commands and queries are sent on behalf of the aggregated entities.
An EntityOption that indicates that this entity is an aggregate root entity through which all commands and queries are sent on behalf of the aggregated entities.
- loc
The location of the option
- case class EntityAvailable(loc: Location) extends EntityOption with Product with Serializable
A EntityOption that indicates that this entity favors availability over consistency in the CAP theorem.
A EntityOption that indicates that this entity favors availability over consistency in the CAP theorem.
- loc
The location of the option.
- case class EntityConsistent(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity favors consistency over availability in the CAP theorem.
An EntityOption that indicates that this entity favors consistency over availability in the CAP theorem.
- loc
The location of the option.
- sealed trait EntityDefinition extends Definition
Base trait of any definition that is in the content of an entity.
- case class EntityEventSourced(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should store its state in an event sourced fashion.
An EntityOption that indicates that this entity should store its state in an event sourced fashion.
- loc
The location of the option.
- case class EntityFiniteStateMachine(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity is intended to implement a finite state machine.
An EntityOption that indicates that this entity is intended to implement a finite state machine.
- loc
The location of the option.
- case class EntityKind(loc: Location, args: Seq[LiteralString]) extends EntityOption with Product with Serializable
An EntityOption that indicates the general kind of entity being defined.
An EntityOption that indicates the general kind of entity being defined. This option takes a value which provides the kind. Examples of useful kinds are "device", "actor", "concept", "machine", and similar kinds of entities. This entity option may be used by downstream AST processors, especially code generators.
- loc
The location of the entity kind option
- args
The argument to the option
- case class EntityMessageQueue(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should allow receipt of commands and queries via a message queue.
An EntityOption that indicates that this entity should allow receipt of commands and queries via a message queue.
- loc
The location at which this option occurs.
- sealed abstract class EntityOption extends EntityValue with OptionValue
Abstract base class of options for entities
- case class EntityRef(loc: Location, id: PathIdentifier) extends Reference[Entity] with Product with Serializable
A reference to an entity
A reference to an entity
- loc
The location of the entity reference
- id
The path identifier of the referenced entity.
- case class EntityTransient(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should not persist its state and is only available in transient memory.
An EntityOption that indicates that this entity should not persist its state and is only available in transient memory. All entity values will be lost when the service is stopped.
- loc
The location of the option.
- sealed trait EntityValue extends RiddlValue
Base trait of any value used in the definition of an entity
- case class EntityValueOption(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should store only the latest value without using event sourcing.
An EntityOption that indicates that this entity should store only the latest value without using event sourcing. In other words, the history of changes is not stored.
- loc
The location of the option
- case class Enumeration(loc: Location, enumerators: Seq[Enumerator]) extends TypeExpression with Container[Enumerator] with Product with Serializable
A type expression that defines its range of possible values as being one value from a set of enumerated values.
A type expression that defines its range of possible values as being one value from a set of enumerated values.
- loc
The location of the enumeration type expression
- enumerators
The set of enumerators from which the value of this enumeration may be chosen.
- case class Enumerator(loc: Location, id: Identifier, enumVal: Option[LiteralInteger] = None, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends Definition with Product with Serializable
Represents one variant among (one or) many variants that comprise an Enumeration
Represents one variant among (one or) many variants that comprise an Enumeration
- id
the identifier (name) of the Enumerator
- enumVal
the optional int value
- brief
A brief description (one sentence) for use in documentation
- description
the description of the enumerator. Each Enumerator in an enumeration may define independent descriptions
- case class ErrorAction(loc: Location, message: LiteralString, description: Option[Description]) extends SagaStepAction with Product with Serializable
An action that is intended to generate a runtime error in the generated application or otherwise indicate an error condition
An action that is intended to generate a runtime error in the generated application or otherwise indicate an error condition
- loc
The location where the action occurs in the source
- message
The error message to report
- description
An optional description of the action
- case class EventActionA8n(loc: Location, id: Identifier, messageRef: EventRef, actions: Seq[Action] = Seq.empty[Action], examples: Seq[Example] = Seq.empty[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = Option.empty[Description]) extends Adaptation with Product with Serializable
An adaptation that takes an action on event receipt
An adaptation that takes an action on event receipt
- loc
The location of the ActionAdaptation
- id
The identifier for this ActionAdaptation
- messageRef
The event to which this adaptation adapts, inherited from Adaptation
- actions
The actions to be taken when messageRef is received
- brief
The brief description of this adaptation
- description
The full description of this adaptation
- case class EventCommandA8n(loc: Location, id: Identifier, messageRef: EventRef, command: CommandRef, examples: Seq[Example] = Seq.empty[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends Adaptation with Product with Serializable
The specification of a single adaptation based on message
The specification of a single adaptation based on message
- loc
The location of the adaptation definition
- id
The name of the adaptation
- messageRef
The event that triggers the adaptation, inherited from Adaptation
- command
The command that adapts the event to the bounded context
- examples
Optional set of Gherkin Examples to define the adaptation
- brief
A brief description (one sentence) for use in documentation
- description
Optional description of the adaptation.
- case class EventRef(loc: Location, id: PathIdentifier) extends Reference[Type] with MessageRef with Product with Serializable
A Reference to an event type
A Reference to an event type
- loc
The location of the reference
- id
The path identifier to the event type
- case class Example(loc: Location, id: Identifier, givens: Seq[GivenClause] = Seq.empty[GivenClause], whens: Seq[WhenClause] = Seq.empty[WhenClause], thens: Seq[ThenClause] = Seq.empty[ThenClause], buts: Seq[ButClause] = Seq.empty[ButClause], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = Option.empty[Description]) extends ProcessorDefinition with Product with Serializable
A Gherkin example.
A Gherkin example. Examples have names, id, and a sequence of each of the four kinds of Gherkin clauses: GivenClause, WhenClause, ThenClause, ButClause
- loc
The location of the start of the example
- id
The name of the example
- givens
The list of Given/And statements
- whens
The list of When/And statements
- thens
The list of Then/And statements
- buts
The List of But/And statements
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the example
- See also
- sealed trait Expression extends RiddlValue
Base trait of all expressions
- case class False(loc: Location) extends Condition with Product with Serializable
A condition value for "false"
A condition value for "false"
- loc
The location of this expression value
- case class Field(loc: Location, id: Identifier, typeEx: TypeExpression, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends Definition with Product with Serializable
A definition that is a field of an aggregation type expressions.
A definition that is a field of an aggregation type expressions. Fields associate an identifier with a type expression.
- loc
The location of the field definition
- id
The name of the field
- typeEx
The type of the field
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the field.
- case class FileDescription(loc: Location, file: Path) extends Description with Product with Serializable
- case class Flow(loc: Location) extends ProcessorShape with Product with Serializable
- case class Function(loc: Location, id: Identifier, input: Option[Aggregation] = None, output: Option[Aggregation] = None, examples: Seq[Example] = Seq.empty[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[Example] with EntityDefinition with ContextDefinition with Product with Serializable
A function definition which can be part of a bounded context or an entity.
A function definition which can be part of a bounded context or an entity.
- loc
The location of the function definition
- id
The identifier that names the function
- input
An optional type expression that names and types the fields of the input of the function
- output
An optional type expression that names and types the fields of the output of the function
- examples
The set of examples that define the behavior of the function.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the function.
- case class FunctionCallAction(loc: Location, function: PathIdentifier, arguments: ArgList, description: Option[Description] = None) extends Expression with Condition with SagaStepAction with Product with Serializable
- case class FunctionCallExpression(loc: Location, name: PathIdentifier, arguments: ArgList) extends Expression with Condition with Product with Serializable
A RIDDL Function call.
A RIDDL Function call. The only callable thing here is a function identified by its path identifier with a matching set of arguments
- loc
The location of the function call expression
- name
The path identifier of the RIDDL Function being called
- arguments
An ArgList to pass to the function.
- case class FunctionOption(loc: Location) extends ContextOption with Product with Serializable
A context's "function" option that suggests
A context's "function" option that suggests
- loc
The location of the function option
- case class FunctionRef(loc: Location, id: PathIdentifier) extends Reference[Function] with Product with Serializable
A reference to a function.
A reference to a function.
- loc
The location of the function reference.
- id
The path identifier of the referenced function.
- case class GatewayOption(loc: Location) extends ContextOption with Product with Serializable
A context's "gateway" option that suggests the bounded context is intended to be an application gateway to the model.
A context's "gateway" option that suggests the bounded context is intended to be an application gateway to the model. Gateway's provide authentication and authorization access to external systems, usually user applications.
- loc
The location of the gateway option
- sealed trait GherkinClause extends GherkinValue
Base class of one of the four Gherkin clauses (Given, When, Then, But)
- sealed trait GherkinValue extends RiddlValue
Base class of any Gherkin value
- case class GivenClause(loc: Location, scenario: Seq[LiteralString]) extends GherkinClause with Product with Serializable
A GherkinClause for the Given part of a Gherkin Example
A GherkinClause for the Given part of a Gherkin Example
- loc
The location of the Given clause
- scenario
The strings that define the scenario
- case class GroupExpression(loc: Location, expression: Expression) extends Expression with Product with Serializable
A syntactic convenience for grouping another expression.
A syntactic convenience for grouping another expression.
- loc
The location of the expression group
- expression
The expression that is grouped
- case class Handler(loc: Location, id: Identifier, stateName: Option[Identifier] = None, clauses: Seq[OnClause] = Seq.empty[OnClause], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[OnClause] with ContextDefinition with EntityDefinition with Product with Serializable
A named handler of messages (commands, events, queries) that bundles together a set of OnClause definitions and by doing so defines the behavior of an entity.
A named handler of messages (commands, events, queries) that bundles together a set of OnClause definitions and by doing so defines the behavior of an entity. Note that entities may define multiple handlers and switch between them to change how it responds to messages over time or in response to changing conditions
- loc
The location of the handler definition
- id
The name of the handler.
- clauses
The set of OnClause definitions that define how the entity responds to received messages.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the handler
- sealed trait HandlerDefinition extends Definition
- case class HandlerRef(loc: Location, id: PathIdentifier) extends Reference[Handler] with Product with Serializable
A reference to a Handler
A reference to a Handler
- loc
The location of the handler reference
- id
The path identifier of the referenced handler
- case class Identifier(loc: Location, value: String) extends RiddlValue with Product with Serializable
A RiddlValue that is a parsed identifier, typically the name of a definition.
A RiddlValue that is a parsed identifier, typically the name of a definition.
- loc
The location in the input where the identifier starts
- value
The parsed value of the identifier
- case class Include(loc: Location = Location(RiddlParserInput.empty), contents: Seq[Definition] = Seq.empty[ParentDefOf[Definition]], path: Option[Path] = None) extends ParentDefOf[Definition] with AdaptorDefinition with ContextDefinition with DomainDefinition with EntityDefinition with PlantDefinition with Product with Serializable
- case class Inlet(loc: Location, id: Identifier, type_: TypeRef, entity: Option[EntityRef] = None, brief: Option[LiteralString] = None, description: Option[Description] = None) extends Streamlet with Product with Serializable
A streamlet that supports input of data of a particular type.
A streamlet that supports input of data of a particular type.
- loc
The location of the Inlet definition
- id
The name of the inlet
- type_
The type of the data that is received from the inlet
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the Inlet
- case class InletJoint(loc: Location, id: Identifier, inletRef: InletRef, pipe: PipeRef, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends Joint with Product with Serializable
A joint that connects an Processor's Inlet to a Pipe.
- loc
The location of the InletJoint
- id
The name of the inlet joint
- inletRef
A reference to the inlet being connected
- pipe
A reference to the pipe being connected
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the joint
- case class InletRef(loc: Location, id: PathIdentifier) extends Reference[Inlet] with StreamletRef[Inlet] with Product with Serializable
A reference to an Inlet
- case class Integer(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for an integer value
A predefined type expression for an integer value
- loc
The location of the integer type expression
- case class Invariant(loc: Location, id: Identifier, expression: Condition, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends EntityDefinition with Product with Serializable
An invariant expression that can be used in the definition of an entity.
An invariant expression that can be used in the definition of an entity. Invariants provide conditional expressions that must be true at all times in the lifecycle of an entity.
- loc
The location of the invariant definition
- id
The name of the invariant
- expression
The conditional expression that must always be true.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the invariant.
- sealed trait Joint extends PlantDefinition with ContextDefinition
Sealed base trait for both kinds of Joint definitions
- case class LatLong(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a location on earth given in latitude and longitude.
A predefined type expression for a location on earth given in latitude and longitude.
- loc
The location of the LatLong type expression.
- case class LiteralDecimal(loc: Location, d: BigDecimal) extends Expression with Product with Serializable
An expression that is a liberal constant decimal value
An expression that is a liberal constant decimal value
- loc
The location of the decimal value
- d
The decimal number to use as the value of the expression
- case class LiteralInteger(loc: Location, n: BigInt) extends Expression with Product with Serializable
An expression that is a literal constant integer value
An expression that is a literal constant integer value
- loc
The location of the integer value
- n
The number to use as the value of the expression
- case class LiteralString(loc: Location, s: String) extends Condition with Product with Serializable
Represents a literal string parsed between quote characters in the input
Represents a literal string parsed between quote characters in the input
- loc
The location in the input of the opening quote character
- s
The parsed value of the string content
- case class Mapping(loc: Location, from: TypeExpression, to: TypeExpression) extends TypeExpression with Product with Serializable
A type expressions that defines a mapping from a key to a value.
A type expressions that defines a mapping from a key to a value. The value of a mapping is the set of mapped key -> value pairs, based on which keys have been provided values.
- loc
The location of the mapping type expression
- from
The type expression for the keys of the mapping
- to
The type expression for the values of the mapping
- case class Merge(loc: Location) extends ProcessorShape with Product with Serializable
- case class MessageConstructor(msg: MessageRef, args: ArgList = ArgList()) extends RiddlNode with Product with Serializable
A helper class for publishing messages that represents the construction of the message to be sent.
A helper class for publishing messages that represents the construction of the message to be sent.
- msg
A message reference that specifies the specific type of message to construct
- args
An argument list that should correspond to teh fields of the message
- sealed trait MessageKind extends AnyRef
Base of an enumeration for the four kinds of message types
- sealed trait MessageRef extends Reference[Type]
Base trait for the four kinds of message references
- case class MessageType(loc: Location, messageKind: MessageKind, fields: Seq[Field] = Seq.empty[Field]) extends AggregateTypeExpression with EntityValue with Product with Serializable
A type expression for an aggregation type expression that is marked as being one of the four message kinds.
A type expression for an aggregation type expression that is marked as being one of the four message kinds.
- loc
The location of the message type expression
- messageKind
The kind of message defined
- fields
The fields of the message's aggregation
- case class MorphAction(loc: Location, entity: EntityRef, state: StateRef, description: Option[Description] = None) extends Action with Product with Serializable
An action that morphs the state of an entity to a new structure
An action that morphs the state of an entity to a new structure
- loc
The location of the morph action in the source
- entity
The entity to be affected
- state
The reference to the new state structure
- description
An optional description of this action
- case class Multi(loc: Location) extends ProcessorShape with Product with Serializable
- abstract class MultiCondition extends Condition
Base class for conditions with two operands
- case class NotCondition(loc: Location, cond1: Condition) extends Condition with Product with Serializable
Not condition
Not condition
- loc
Location of the not condition
- cond1
The condition being negated
- case class Nothing(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a type that can have no values
A predefined type expression for a type that can have no values
- loc
The location of the nothing type expression.
- case class Number(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for an arbitrary number value
A predefined type expression for an arbitrary number value
- loc
The location of the number type expression
- case class OnClause(loc: Location, msg: MessageRef, examples: Seq[Example] = Seq.empty[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[Example] with HandlerDefinition with Product with Serializable
Defines the actions to be taken when a particular message is received by an entity.
Defines the actions to be taken when a particular message is received by an entity. OnClauses are used in the definition of a Handler with one for each kind of message that handler deals with.
- loc
The location of the "on" clause
- msg
A reference to the message type that is handled
- examples
A set of examples that define the behavior when the msg is received.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the on clause.
- case class OneOrMore(loc: Location, typeExp: TypeExpression) extends Cardinality with Product with Serializable
A cardinality type expression that indicates another type expression as having one or more instances.
A cardinality type expression that indicates another type expression as having one or more instances.
- loc
The location of the one-or-more cardinality
- typeExp
The type expression that is indicated with a cardinality of one or more.
- trait OptionValue extends RiddlValue
Base trait for option values for any option of a definition.
- case class Optional(loc: Location, typeExp: TypeExpression) extends Cardinality with Product with Serializable
A cardinality type expression that indicates another type expression as being optional; that is with a cardinality of 0 or 1.
A cardinality type expression that indicates another type expression as being optional; that is with a cardinality of 0 or 1.
- loc
The location of the optional cardinality
- typeExp
The type expression that is indicated as optional
- trait OptionsDef[T <: OptionValue] extends RiddlValue
Base trait that can be used in any definition that takes options and ensures the options are defined, can be queried, and formatted.
Base trait that can be used in any definition that takes options and ensures the options are defined, can be queried, and formatted.
- T
The sealed base trait of the permitted options for this definition
- case class OrCondition(loc: Location, conditions: Seq[Condition]) extends MultiCondition with Product with Serializable
Or condition
Or condition
- loc
Location of the
or
condition- conditions
The conditions (minimum 2), any one of which must be true for "Or" to be true
- case class OtherRef(loc: Location) extends Reference[Type] with MessageRef with Product with Serializable
- case class Outlet(loc: Location, id: Identifier, type_: TypeRef, entity: Option[EntityRef] = None, brief: Option[LiteralString] = None, description: Option[Description] = None) extends Streamlet with Product with Serializable
A streamlet that supports output of data of a particular type.
A streamlet that supports output of data of a particular type.
- loc
The location of the outlet definition
- id
The name of the outlet
- type_
The type expression for the kind of data put out
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the Outlet.
- case class OutletJoint(loc: Location, id: Identifier, outletRef: OutletRef, pipe: PipeRef, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends Joint with Product with Serializable
A joint that connects a Processor's Outlet to a Pipe.
- loc
The location of the OutletJoint
- id
The name of the OutletJoint
- outletRef
A reference to the outlet being connected
- pipe
A reference to the pipe being connected
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the OutletJoint
- case class OutletRef(loc: Location, id: PathIdentifier) extends Reference[Outlet] with StreamletRef[Outlet] with Product with Serializable
A reference to an Outlet
- case class ParallelOption(loc: Location) extends SagaOption with Product with Serializable
A SagaOption that indicates parallel execution of the saga actions.
A SagaOption that indicates parallel execution of the saga actions.
- loc
The location of the parallel option
- sealed trait ParentDefOf[+D <: Definition] extends Definition with Container[D]
The parent of a definition as a definition and a container.
The parent of a definition as a definition and a container. This type is widely used to reference any definition that contains other definitions and is therefore the basis for traversal of the tree.
- D
The kind of definition that is contained by the container
- case class PathIdentifier(loc: Location, value: Seq[String]) extends RiddlValue with Product with Serializable
Represents a segmented identifier to a definition in the model.
Represents a segmented identifier to a definition in the model. Path Identifiers are parsed from a dot-separated list of identifiers in the input. Path identifiers are used to reference other definitions in the model.
- loc
Location in the input of the first letter of the path identifier
- value
The list of strings that make up the path identifier
- case class Pattern(loc: Location, pattern: Seq[LiteralString]) extends TypeExpression with Product with Serializable
A type expression that defines a string value constrained by a Java Regular Expression
A type expression that defines a string value constrained by a Java Regular Expression
- loc
The location of the pattern type expression
- pattern
The Java Regular Expression to which values of this type expression must obey.
- See also
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html
- case class Pipe(loc: Location, id: Identifier, transmitType: Option[TypeRef], brief: Option[LiteralString] = None, description: Option[Description] = None) extends PlantDefinition with ContextDefinition with Product with Serializable
Definition of a pipe for data streaming purposes.
Definition of a pipe for data streaming purposes. Pipes are conduits through which data of a particular type flows.
- loc
The location of the pipe definition
- id
The name of the pipe
- transmitType
The type of data transmitted.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the pipe.
- case class PipeRef(loc: Location, id: PathIdentifier) extends Reference[Pipe] with Product with Serializable
A reference to a pipe
A reference to a pipe
- loc
The location of the pipe reference
- id
The path identifier for the referenced pipe.
- case class Plant(loc: Location, id: Identifier, pipes: Seq[Pipe] = Seq.empty[Pipe], processors: Seq[Processor] = Seq.empty[Processor], inJoints: Seq[InletJoint] = Seq.empty[InletJoint], outJoints: Seq[OutletJoint] = Seq.empty[OutletJoint], terms: Seq[Term] = Seq.empty[Term], includes: Seq[Include] = Seq.empty[Include], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[PlantDefinition] with DomainDefinition with WithIncludes with WithTerms with Product with Serializable
The definition of a plant which brings pipes, processors and joints together into a closed system of data processing.
The definition of a plant which brings pipes, processors and joints together into a closed system of data processing.
- loc
The location of the plant definition
- id
The name of the plant
- pipes
The set of pipes involved in the plant
- processors
The set of processors involved in the plant.
- inJoints
The InletJoints connecting pipes and processors
- outJoints
The OutletJoints connecting pipes and processors
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the plant
- sealed trait PlantDefinition extends Definition
Base trait of any definition that occurs in the body of a plant
- abstract class PredefinedType extends TypeExpression
Base class of all pre-defined type expressions
- case class Processor(loc: Location, id: Identifier, shape: ProcessorShape, inlets: Seq[Inlet], outlets: Seq[Outlet], examples: Seq[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[ProcessorDefinition] with PlantDefinition with ContextDefinition with Product with Serializable
A computing element for processing data from Inlets to Outlets.
A computing element for processing data from Inlets to Outlets. A processor's processing is specified by Gherkin Examples
- loc
The location of the Processor definition
- id
The name of the processor
- shape
The shape of the processor's inputs and outputs
- inlets
The list of inlets that provide the data the processor needs
- outlets
The list of outlets that the processor produces
- examples
A set of examples that define the data processing
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the processor
- trait ProcessorDefinition extends Definition
Base trait of definitions defined in a processor
- sealed trait ProcessorShape extends RiddlValue
- case class PublishAction(loc: Location, msg: MessageConstructor, pipe: PipeRef, description: Option[Description] = None) extends SagaStepAction with Product with Serializable
An action that publishes a message to a pipe
An action that publishes a message to a pipe
- loc
The location in the source of the publish action
- msg
The constructed message to be published
- pipe
The pipe onto which the message is published
- description
An optional description of the action
- case class QueryRef(loc: Location, id: PathIdentifier) extends Reference[Type] with MessageRef with Product with Serializable
A reference to a query type
A reference to a query type
- loc
The location of the reference
- id
The path identifier to the query type
- case class RangeType(loc: Location, min: LiteralInteger, max: LiteralInteger) extends TypeExpression with Product with Serializable
A type expression that defines a set of integer values from a minimum value to a maximum value, inclusively.
A type expression that defines a set of integer values from a minimum value to a maximum value, inclusively.
- loc
The location of the range type expression
- min
The minimum value of the range
- max
The maximum value of the range
- case class Real(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a real number value.
A predefined type expression for a real number value.
- loc
The locaiton of the real number type expression
- sealed abstract class Reference[+T <: Definition] extends RiddlValue
A reference to a definition of a specific type.
A reference to a definition of a specific type.
- T
The type of definition to which the references refers.
- case class ReferenceType(loc: Location, entity: EntityRef) extends TypeExpression with Product with Serializable
A type expression whose value is a reference to an entity.
A type expression whose value is a reference to an entity.
- loc
The location of the reference type expression
- entity
The entity referenced by this type expression.
- case class ReplyAction(loc: Location, msg: MessageConstructor, description: Option[Description] = None) extends SagaStepAction with Product with Serializable
An action that tells a message to an entity.
An action that tells a message to an entity. This is very analogous to the tell operator in Akka.
- loc
The location of the tell action
- msg
A constructed message value to send to the entity, probably a command
- description
An optional description for this action
- case class ResultRef(loc: Location, id: PathIdentifier) extends Reference[Type] with MessageRef with Product with Serializable
A reference to a result type
A reference to a result type
- loc
The location of the reference
- id
The path identifier to the result type
- sealed trait RiddlNode extends AnyRef
The root trait of all things RIDDL AST.
The root trait of all things RIDDL AST. Every node in the tree is a RiddlNode.
- sealed trait RiddlValue extends RiddlNode
The root trait of all parsable values.
The root trait of all parsable values. If a parser returns something, its a RiddlValue
- case class RootContainer(contents: Seq[Domain] = Nil, inputs: Seq[RiddlParserInput] = Nil) extends ParentDefOf[Domain] with Product with Serializable
The root of the containment hierarchy, corresponding roughly to a level about a file.
The root of the containment hierarchy, corresponding roughly to a level about a file.
- contents
The sequence of domains contained by this root container
- case class Saga(loc: Location, id: Identifier, options: Seq[SagaOption] = Seq.empty[SagaOption], input: Option[Aggregation], output: Option[Aggregation], sagaSteps: Seq[SagaStep] = Seq.empty[SagaStep], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[SagaStep] with OptionsDef[SagaOption] with ContextDefinition with Product with Serializable
The definition of a Saga based on inputs, outputs, and the set of SagaSteps involved in the saga.
The definition of a Saga based on inputs, outputs, and the set of SagaSteps involved in the saga. Sagas define a computing action based on a variety of related commands that must all succeed atomically or have their effects undone.
- loc
The location of the Saga definition
- id
The name of the saga
- options
The options of the saga
- input
A definition of the aggregate input values needed to invoke the saga, if any.
- output
A definition of the aggregate output values resulting from invoking the saga, if any.
- sagaSteps
The set of SagaSteps that comprise the saga.
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the saga.
- sealed trait SagaOption extends OptionValue
Base trait for all options applicable to a saga.
- case class SagaStep(loc: Location, id: Identifier, doAction: SagaStepAction, undoAction: SagaStepAction, examples: Seq[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[Example] with Product with Serializable
The definition of one step in a saga with its undo step and example.
The definition of one step in a saga with its undo step and example.
- loc
The location of the saga action definition
- id
The name of the SagaAction
- doAction
The command to be done.
- undoAction
The command that undoes doAction
- examples
An list of examples for the intended behavior
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the saga action
- sealed trait SagaStepAction extends Action
An action that can also be used in a SagaStep
- case class SequentialOption(loc: Location) extends SagaOption with Product with Serializable
A SagaOption that indicates sequential (serial) execution of the saga actions.
A SagaOption that indicates sequential (serial) execution of the saga actions.
- loc
The location of the sequential option
- case class ServiceOption(loc: Location) extends ContextOption with Product with Serializable
A context's "service" option.
A context's "service" option. This option suggests the bounded context is intended to be a DDD service, similar to a wrapper but without any persistent state and more of a stateless service aspect to its nature
- loc
The location at which the option occurs
- case class SetAction(loc: Location, target: PathIdentifier, value: Expression, description: Option[Description] = None) extends Action with Product with Serializable
An action whose behavior is to set the value of a state field to some expression
An action whose behavior is to set the value of a state field to some expression
- loc
The location where the action occurs int he source
- target
The path identifier of the entity's state field that is to be set
- value
An expression for the value to set the field to
- description
An optional description of the action
- case class Sink(loc: Location) extends ProcessorShape with Product with Serializable
- case class Source(loc: Location) extends ProcessorShape with Product with Serializable
- case class Split(loc: Location) extends ProcessorShape with Product with Serializable
- case class State(loc: Location, id: Identifier, typeEx: Aggregation, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[Field] with EntityDefinition with Product with Serializable
Represents the state of an entity.
Represents the state of an entity. The MorphAction can cause the state definition of an entity to change.
- loc
The location of the state definition
- id
The name of the state definition
- typeEx
The aggregation that provides the field name and type expression associations
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the state.
- case class StateRef(loc: Location, id: PathIdentifier) extends Reference[State] with Product with Serializable
A reference to an entity's state definition
A reference to an entity's state definition
- loc
The location of the state reference
- id
The path identifier of the referenced state definition
- case class Story(loc: Location, id: Identifier, role: LiteralString, capability: LiteralString, benefit: LiteralString, shownBy: Seq[java.net.URL], implementedBy: Seq[PathIdentifier], examples: Seq[Example] = Seq.empty[Example], brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[Example] with DomainDefinition with Product with Serializable
The definition of an agile user story.
The definition of an agile user story. Stories define functionality from the perspective of a certain kind of user (man or machine), interacting with the system via some role. RIDDL extends the notion of an agile user story by allowing a linkage between the story and the RIDDL features that implement it.
- loc
The location of the story definition
- id
The name of the story
- role
The role of the actor involved in the story
- capability
The capability utilized by the actor in the story
- benefit
The benefit, to the user, of using the capability.
- shownBy
A list of URLs to visualizations or other materials related to the story
- implementedBy
A list of PathIdentifiers, presumably contexts, that implement the story
- examples
Gherkin examples to specify "done" for the implementation of the user story
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the
- trait Streamlet extends ProcessorDefinition
Base trait of an Inlet or Outlet definition
- sealed trait StreamletRef[+T <: Definition] extends Reference[T]
- case class Strng(loc: Location, min: Option[LiteralInteger] = None, max: Option[LiteralInteger] = None) extends PredefinedType with Product with Serializable
A type expression for values of arbitrary string type, possibly bounded by length.
A type expression for values of arbitrary string type, possibly bounded by length.
- loc
The location of the Strng type expression
- min
The minimum length of the string (default: 0)
- max
The maximum length of the string (default: MaxInt)
- case class TellAction(loc: Location, msg: MessageConstructor, entity: EntityRef, description: Option[Description] = None) extends SagaStepAction with Product with Serializable
An action that tells a message to an entity.
An action that tells a message to an entity. This is very analogous to the tell operator in Akka.
- loc
The location of the tell action
- msg
A constructed message value to send to the entity, probably a command
- entity
The entity to which the message is directed
- description
An optional description for this action
- case class Term(loc: Location, id: Identifier, brief: Option[LiteralString] = None, description: Option[Description] = None) extends DomainDefinition with ContextDefinition with PlantDefinition with Product with Serializable
A term definition for the glossary
- case class Ternary(loc: Location, condition: Condition, expr1: Expression, expr2: Expression) extends Condition with Product with Serializable
Ternary operator to accept a conditional and two expressions and choose one of the expressions as the resulting value based on the conditional.
Ternary operator to accept a conditional and two expressions and choose one of the expressions as the resulting value based on the conditional.
- loc
The location of the ternary operator
- condition
The conditional expression that determines the result
- expr1
An expression for the result if the condition is true
- expr2
An expression for the result if the condition is false
- case class ThenClause(loc: Location, action: Action) extends GherkinClause with Product with Serializable
A GherkinClause for the Then part of a Gherkin Example.
A GherkinClause for the Then part of a Gherkin Example. This part specifies what should be done if the WhenClause evaluates to true.
- loc
The location of the Then clause
- action
The action to be performed
- case class Time(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a clock time with hours, minutes, seconds.
A predefined type expression for a clock time with hours, minutes, seconds.
- loc
The location of the time type expression.
- case class TimeStamp(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a timestamp that records the number of milliseconds from the epoch.
A predefined type expression for a timestamp that records the number of milliseconds from the epoch.
- loc
The location of the timestamp
- case class True(loc: Location) extends Condition with Product with Serializable
A condition value for "true"
A condition value for "true"
- loc
The location of this expression value
- case class Type(loc: Location, id: Identifier, typ: TypeExpression, brief: Option[LiteralString] = Option.empty[LiteralString], description: Option[Description] = None) extends ParentDefOf[Definition] with ContextDefinition with EntityDefinition with DomainDefinition with Product with Serializable
A type definition which associates an identifier with a type expression.
A type definition which associates an identifier with a type expression.
- loc
The location of the type definition
- id
The name of the type being defined
- typ
The type expression of the type being defined
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the type.
- sealed trait TypeExpression extends RiddlValue
Base trait of an expression that defines a type
- case class TypeRef(loc: Location, id: PathIdentifier) extends Reference[Type] with TypeExpression with Product with Serializable
A reference to a type definition
A reference to a type definition
- loc
The location in the source where the reference to the type is made
- id
The path identifier of the reference type
- case class URL(loc: Location, scheme: Option[LiteralString] = None) extends PredefinedType with Product with Serializable
A predefined type expression for a Uniform Resource Locator of a specific schema.
A predefined type expression for a Uniform Resource Locator of a specific schema.
- loc
The location of the URL type expression
- scheme
The scheme to which the URL is constrained.
- case class UUID(loc: Location) extends PredefinedType with Product with Serializable
A predefined type expression for a universally unique identifier as defined by the Java Virtual Machine.
A predefined type expression for a universally unique identifier as defined by the Java Virtual Machine.
- loc
The location of the UUID type expression
- case class UndefinedExpression(loc: Location) extends Expression with Condition with Product with Serializable
Represents a condition expression that will be specified later and uses the ??? syntax to represent that condition.
Represents a condition expression that will be specified later and uses the ??? syntax to represent that condition.
- loc
The location of the undefined condition
- case class UniqueId(loc: Location, entityPath: PathIdentifier) extends TypeExpression with Product with Serializable
A type expression for values that ensure a unique identifier for a specific entity.
A type expression for values that ensure a unique identifier for a specific entity.
- loc
The location of the unique identifier type expression
- entityPath
The path identifier of the entity type
- case class ValueExpression(loc: Location, path: PathIdentifier) extends Expression with Condition with Product with Serializable
Represents an expression that is merely a reference to some value, presumably an entity state value.
Represents an expression that is merely a reference to some value, presumably an entity state value. Since it can be a boolean value, it is also a condition
- loc
The location of this expression
- path
The path to the value for this expression
- case class WhenClause(loc: Location, condition: Condition) extends GherkinClause with Product with Serializable
A GherkinClause for the When part of a Gherkin Example
A GherkinClause for the When part of a Gherkin Example
- loc
The location of the When clause
- condition
The condition expression that defines the trigger for the Example
- sealed trait WithIncludes extends AnyRef
Added to definitions that support includes
- sealed trait WithTerms extends AnyRef
Added to definitions that support a list of term definitions
- case class WrapperOption(loc: Location) extends ContextOption with Product with Serializable
A context's "wrapper" option.
A context's "wrapper" option. This option suggests the bounded context is to be used as a wrapper around an external system and is therefore at the boundary of the context map
- loc
The location of the wrapper option
- case class XorCondition(loc: Location, conditions: Seq[Condition]) extends MultiCondition with Product with Serializable
Xor condition
Xor condition
- loc
Location of the
xor
condition- conditions
The conditions (minimum 2), only one of which may be true for "xor" to be true.
- case class YieldAction(loc: Location, msg: MessageConstructor, description: Option[Description] = None) extends Action with Product with Serializable
An action that places a message on an entity's event channel
An action that places a message on an entity's event channel
- loc
The location in the source of the publish action
- msg
The constructed message to be yielded
- description
An optional description of the yield action
- case class ZeroOrMore(loc: Location, typeExp: TypeExpression) extends Cardinality with Product with Serializable
A cardinality type expression that indicates another type expression as having zero or more instances.
A cardinality type expression that indicates another type expression as having zero or more instances.
- loc
The location of the zero-or-more cardinality
- typeExp
The type expression that is indicated with a cardinality of zero or more.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def keyword(definition: Definition): String
A function to translate between a definition and the keyword that introduces them.
A function to translate between a definition and the keyword that introduces them.
- definition
The definition to look up
- returns
A string providing the definition keyword, if any. Enumerators and fields don't have their own keywords
- def kind(te: TypeExpression): String
A utility function for getting the kind of a type expression.
A utility function for getting the kind of a type expression.
- te
The type expression to examine
- returns
A string indicating the kind corresponding to te
- def kind(c: Container[Definition]): String
- def kind(definition: DescribedValue): String
A function to provide the kind of thing that a DescribedValue is
A function to provide the kind of thing that a DescribedValue is
- definition
The DescribedValue for which the kind is returned
- returns
A string for the kind of DescribedValue
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- case object CommandKind extends MessageKind with Product with Serializable
An enumerator value for command types
- case object EventKind extends MessageKind with Product with Serializable
An enumerator value for event types
- object Identifier extends Serializable
- case object OtherKind extends MessageKind with Product with Serializable
- object PredefinedType
- case object QueryKind extends MessageKind with Product with Serializable
An enumerator value for query types
- case object ResultKind extends MessageKind with Product with Serializable
An enumerator value for result types
- object RootContainer extends Serializable
- case object eq extends Comparator with Product with Serializable
- case object ge extends Comparator with Product with Serializable
- case object gt extends Comparator with Product with Serializable
- case object le extends Comparator with Product with Serializable
- case object lt extends Comparator with Product with Serializable
- case object ne extends Comparator with Product with Serializable
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated