Packages

object AST extends Expressions with TypeExpression

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).

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AST
  2. TypeExpression
  3. Expressions
  4. Abstract
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. sealed trait Adaptation extends AdaptorDefinition
  2. case class Adaptor(loc: Location, id: AST.Identifier, ref: ContextRef, adaptations: Seq[Adaptation] = Seq.empty[Adaptation], includes: Seq[Include] = Seq.empty[Include], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends 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.

  3. case class AppendAction(loc: Location, value: AST.Expression, target: AST.PathIdentifier, description: Option[AST.Description] = None) extends Action with Product with Serializable
  4. case class ArbitraryAction(loc: Location, what: AST.LiteralString, description: Option[AST.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

  5. case class AskAction(loc: Location, entity: EntityRef, msg: MessageConstructor, description: Option[AST.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.

  6. case class AuthorInfo(loc: Location, id: AST.Identifier, name: AST.LiteralString, email: AST.LiteralString, organization: Option[AST.LiteralString] = None, title: Option[AST.LiteralString] = None, url: Option[java.net.URL] = None, brief: Option[AST.LiteralString] = None, description: Option[AST.Description] = None) extends LeafDefinition with DomainDefinition with ContextDefinition with EntityDefinition with StoryDefinition with PlantDefinition 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

    email

    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

  7. case class BecomeAction(loc: Location, entity: EntityRef, handler: HandlerRef, description: Option[AST.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

  8. case class ButClause(loc: Location, action: AST.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

  9. type Command = Type
  10. case class CommandCommandA8n(loc: Location, id: AST.Identifier, messageRef: CommandRef, command: CommandRef, examples: Seq[Example] = Seq.empty[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.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.

  11. case class CommandRef(loc: Location, id: AST.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

  12. case class CompoundAction(loc: Location, actions: Seq[AST.Action], description: Option[AST.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

  13. case class Context(loc: Location, id: AST.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], projections: Seq[Projection] = Seq.empty[Projection], authors: Seq[AuthorInfo] = Seq.empty[AuthorInfo], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends DomainDefinition with TypeContainer with WithTypes with WithOptions[ContextOption] with WithIncludes with WithTerms with WithAuthors 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

  14. sealed abstract class ContextOption extends OptionValue

    Base trait for all options a Context can have.

  15. case class ContextPackageOption(loc: Location, args: Seq[AST.LiteralString]) extends ContextOption with Product with Serializable
  16. case class ContextRef(loc: Location, id: AST.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

  17. case class Domain(loc: Location, id: AST.Identifier, options: Seq[DomainOption] = Seq.empty[DomainOption], 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[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends TypeContainer with WithOptions[DomainOption] with DomainDefinition with WithIncludes with WithTypes with WithTerms with WithAuthors 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.

  18. sealed abstract class DomainOption extends OptionValue

    Base trait for all options a Domain can have.

  19. case class DomainPackageOption(loc: Location, args: Seq[AST.LiteralString]) extends DomainOption 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

  20. case class DomainRef(loc: Location, id: AST.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.

  21. case class Entity(loc: Location, id: AST.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], authors: Seq[AuthorInfo] = Seq.empty[AuthorInfo], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends ContextDefinition with TypeContainer with WithTypes with WithOptions[EntityOption] with WithIncludes with WithAuthors 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

  22. 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.

  23. case class EntityIsAggregate(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

  24. case class EntityIsAvailable(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.

  25. case class EntityIsConsistent(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.

  26. case class EntityIsFiniteStateMachine(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.

  27. case class EntityKind(loc: Location, args: Seq[AST.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

  28. 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.

  29. sealed abstract class EntityOption extends EntityValue with OptionValue

    Abstract base class of options for entities

  30. case class EntityRef(loc: Location, id: AST.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.

  31. 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.

  32. sealed trait EntityValue extends RiddlValue

    Base trait of any value used in the definition of an entity

  33. 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

  34. case class ErrorAction(loc: Location, message: AST.LiteralString, description: Option[AST.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

  35. type Event = Type
  36. case class EventActionA8n(loc: Location, id: AST.Identifier, messageRef: EventRef, actions: Seq[AST.Action] = Seq.empty[Action], examples: Seq[Example] = Seq.empty[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.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

  37. case class EventCommandA8n(loc: Location, id: AST.Identifier, messageRef: EventRef, command: CommandRef, examples: Seq[Example] = Seq.empty[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.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.

  38. case class EventRef(loc: Location, id: AST.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

  39. case class Example(loc: Location, id: AST.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[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = Option.empty[Description]) extends LeafDefinition with ProcessorDefinition with FunctionDefinition with StoryDefinition 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

    The Gherkin Reference

  40. case class Flow(loc: Location) extends ProcessorShape with Product with Serializable
  41. case class Function(loc: Location, id: AST.Identifier, input: Option[AST.Aggregation] = None, output: Option[AST.Aggregation] = None, types: Seq[Type] = Seq.empty[Type], functions: Seq[Function] = Seq.empty[Function], examples: Seq[Example] = Seq.empty[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends EntityDefinition with WithTypes with ContextDefinition with FunctionDefinition 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.

  42. case class FunctionCallAction(loc: Location, function: AST.PathIdentifier, arguments: AST.ArgList, description: Option[AST.Description] = None) extends SagaStepAction with Product with Serializable
  43. 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

  44. case class FunctionRef(loc: Location, id: AST.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.

  45. 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

  46. case class GivenClause(loc: Location, scenario: Seq[AST.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

  47. case class Handler(loc: Location, id: AST.Identifier, applicability: Option[AST.Reference[_]] = None, clauses: Seq[OnClause] = Seq.empty[OnClause], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends 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

  48. case class HandlerRef(loc: Location, id: AST.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

  49. case class Include(loc: Location = Location(RiddlParserInput.empty), contents: Seq[AST.Definition] = Seq.empty[Definition], path: Option[Path] = None) extends Definition with AdaptorDefinition with ContextDefinition with DomainDefinition with EntityDefinition with PlantDefinition with Product with Serializable
  50. case class Inlet(loc: Location, id: AST.Identifier, type_: TypeRef, entity: Option[EntityRef] = None, brief: Option[AST.LiteralString] = None, description: Option[AST.Description] = None) extends Streamlet with AlwaysEmpty 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

  51. case class InletJoint(loc: Location, id: AST.Identifier, inletRef: InletRef, pipe: PipeRef, brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends Joint with Product with Serializable

    A joint that connects an Processor's Inlet to a Pipe.

    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

  52. case class InletRef(loc: Location, id: AST.PathIdentifier) extends Reference[Inlet] with StreamletRef[Inlet] with Product with Serializable

    A reference to an Inlet

    A reference to an Inlet

    loc

    The location of the inlet reference

    id

    The path identifier of the referenced Inlet

  53. case class Invariant(loc: Location, id: AST.Identifier, expression: Option[AST.Condition] = None, brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends LeafDefinition with 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.

  54. sealed trait Joint extends LeafDefinition with AlwaysEmpty with PlantDefinition with ContextDefinition

    Sealed base trait for both kinds of Joint definitions

  55. case class Merge(loc: Location) extends ProcessorShape with Product with Serializable
  56. case class MessageConstructor(msg: MessageRef, args: AST.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

  57. sealed trait MessageRef extends Reference[Type]

    Base trait for the four kinds of message references

  58. case class MorphAction(loc: Location, entity: EntityRef, state: StateRef, description: Option[AST.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

  59. case class Multi(loc: Location) extends ProcessorShape with Product with Serializable
  60. case class OnClause(loc: Location, msg: MessageRef, examples: Seq[Example] = Seq.empty[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends 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.

  61. case class OtherRef(loc: Location) extends Reference[Type] with MessageRef with Product with Serializable
  62. case class Outlet(loc: Location, id: AST.Identifier, type_: TypeRef, entity: Option[EntityRef] = None, brief: Option[AST.LiteralString] = None, description: Option[AST.Description] = None) extends Streamlet with AlwaysEmpty 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.

  63. case class OutletJoint(loc: Location, id: AST.Identifier, outletRef: OutletRef, pipe: PipeRef, brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends Joint with Product with Serializable

    A joint that connects a Processor's Outlet to a Pipe.

    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

  64. case class OutletRef(loc: Location, id: AST.PathIdentifier) extends Reference[Outlet] with StreamletRef[Outlet] with Product with Serializable

    A reference to an Outlet

    A reference to an Outlet

    loc

    The location of the outlet reference

    id

    The path identifier of the referenced Outlet

  65. 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

  66. case class Pipe(loc: Location, id: AST.Identifier, transmitType: Option[TypeRef], brief: Option[AST.LiteralString] = None, description: Option[AST.Description] = None) extends LeafDefinition with 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.

  67. case class PipeRef(loc: Location, id: AST.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.

  68. case class Plant(loc: Location, id: AST.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], authors: Seq[AuthorInfo] = Seq.empty[AuthorInfo], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends DomainDefinition with WithIncludes with WithTerms with WithAuthors 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

  69. case class Processor(loc: Location, id: AST.Identifier, shape: ProcessorShape, inlets: Seq[Inlet], outlets: Seq[Outlet], examples: Seq[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends 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

  70. trait ProcessorDefinition extends Definition

    Base trait of definitions defined in a processor

  71. sealed trait ProcessorShape extends RiddlValue
  72. case class Projection(loc: Location, id: AST.Identifier, fields: Seq[AST.Field], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends ContextDefinition with Product with Serializable
  73. case class ProjectionRef(loc: Location, id: AST.PathIdentifier) extends Reference[Projection] with Product with Serializable

    A reference to an context's projection definition

    A reference to an context's projection definition

    loc

    The location of the state reference

    id

    The path identifier of the referenced projection definition

  74. case class PublishAction(loc: Location, msg: MessageConstructor, pipe: PipeRef, description: Option[AST.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

  75. type Query = Type
  76. case class QueryRef(loc: Location, id: AST.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

  77. case class ReplyAction(loc: Location, msg: MessageConstructor, description: Option[AST.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

  78. type Result = Type
  79. case class ResultRef(loc: Location, id: AST.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

  80. case class ReturnAction(loc: Location, value: AST.Expression, description: Option[AST.Description] = None) extends Action with Product with Serializable

    An action that returns a value from a function

    An action that returns a value from a function

    loc

    The location in the source of the publish action

    value

    The value to be returned

    description

    An optional description of the yield action

  81. case class RootContainer(contents: Seq[Domain] = Nil, inputs: Seq[RiddlParserInput] = Nil) extends Definition 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

  82. case class Saga(loc: Location, id: AST.Identifier, options: Seq[SagaOption] = Seq.empty[SagaOption], input: Option[AST.Aggregation] = None, output: Option[AST.Aggregation] = None, sagaSteps: Seq[SagaStep] = Seq.empty[SagaStep], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends ContextDefinition with WithOptions[SagaOption] 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.

  83. sealed abstract class SagaOption extends OptionValue

    Base trait for all options applicable to a saga.

  84. case class SagaStep(loc: Location, id: AST.Identifier, doAction: AST.SagaStepAction, undoAction: AST.SagaStepAction, examples: Seq[Example], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends SagaDefinition 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

  85. 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

  86. 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

  87. case class SetAction(loc: Location, target: AST.PathIdentifier, value: AST.Expression, description: Option[AST.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

  88. case class Sink(loc: Location) extends ProcessorShape with Product with Serializable
  89. case class Source(loc: Location) extends ProcessorShape with Product with Serializable
  90. case class Split(loc: Location) extends ProcessorShape with Product with Serializable
  91. case class State(loc: Location, id: AST.Identifier, typeEx: AST.Aggregation, brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends 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.

  92. case class StateRef(loc: Location, id: AST.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

  93. case class Story(loc: Location, id: AST.Identifier, role: AST.LiteralString = LiteralString.empty, capability: AST.LiteralString = LiteralString.empty, benefit: AST.LiteralString = LiteralString.empty, shownBy: Seq[java.net.URL] = Seq.empty[java.net.URL], implementedBy: Seq[DomainRef] = Seq.empty[DomainRef], examples: Seq[Example] = Seq.empty[Example], authors: Seq[AuthorInfo] = Seq.empty[AuthorInfo], brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends DomainDefinition with WithAuthors 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

  94. trait Streamlet extends LeafDefinition with ProcessorDefinition

    Base trait of an Inlet or Outlet definition

  95. sealed trait StreamletRef[+T <: Definition] extends Reference[T]

    Sealed base trait of references to Inlets or Outlets

    Sealed base trait of references to Inlets or Outlets

    T

    The type of definition to which the references refers.

  96. case class TellAction(loc: Location, msg: MessageConstructor, entity: EntityRef, description: Option[AST.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

  97. case class Term(loc: Location, id: AST.Identifier, brief: Option[AST.LiteralString] = None, description: Option[AST.Description] = None) extends LeafDefinition with DomainDefinition with ContextDefinition with PlantDefinition with Product with Serializable

    A term definition for the glossary

  98. case class ThenClause(loc: Location, action: AST.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

  99. case class Type(loc: Location, id: AST.Identifier, typ: AST.TypeExpression, brief: Option[AST.LiteralString] = Option.empty[LiteralString], description: Option[AST.Description] = None) extends Definition with ContextDefinition with EntityDefinition with FunctionDefinition 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.

  100. trait TypeContainer extends AnyRef

    Base trait of any definition that is a container and contains types

  101. case class TypeRef(loc: Location, id: AST.PathIdentifier) extends Reference[Type] 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

  102. case class WhenClause(loc: Location, condition: AST.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

  103. trait WithAuthors extends Definition
  104. sealed trait WithIncludes extends Container[Definition]

    Added to definitions that support includes

  105. sealed trait WithTerms extends AnyRef

    Added to definitions that support a list of term definitions

  106. trait WithTypes extends Definition
  107. 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

  108. case class YieldAction(loc: Location, msg: MessageConstructor, description: Option[AST.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

  109. trait Action extends DescribedValue

    Base class for all actions.

    Base class for all actions. Actions are used in the "then" and "but" clauses of a Gherkin example such as in the body of a handler's on clause or in the definition of a Function. The subclasses define different kinds of actions that can be used.

    Definition Classes
    Abstract
  110. trait AdaptorDefinition extends Definition

    Base trait of any definition that is in the content of an adaptor

    Base trait of any definition that is in the content of an adaptor

    Definition Classes
    Abstract
  111. trait AlwaysEmpty extends Definition
    Definition Classes
    Abstract
  112. case class BlockDescription(loc: Location = Location.empty, lines: Seq[LiteralString] = Seq.empty[LiteralString]) extends Description with Product with Serializable
    Definition Classes
    Abstract
  113. trait BrieflyDescribedValue extends RiddlValue
    Definition Classes
    Abstract
  114. 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

    Definition Classes
    Abstract
  115. trait ContextDefinition extends Definition

    Base trait of any definition that is in the content of a context

    Base trait of any definition that is in the content of a context

    Definition Classes
    Abstract
  116. trait Definition extends DescribedValue with BrieflyDescribedValue with Container[Definition]

    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

    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

    Definition Classes
    Abstract
  117. trait DescribedValue extends RiddlValue

    Base trait of all values that have an optional Description

    Base trait of all values that have an optional Description

    Definition Classes
    Abstract
  118. 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.

    Definition Classes
    Abstract
  119. trait DomainDefinition extends Definition

    Base trait of any definition that is in the content of a domain

    Base trait of any definition that is in the content of a domain

    Definition Classes
    Abstract
  120. trait EntityDefinition extends Definition

    Base trait of any definition that is in the content of an entity.

    Base trait of any definition that is in the content of an entity.

    Definition Classes
    Abstract
  121. case class FileDescription(loc: Location, file: Path) extends Description with Product with Serializable
    Definition Classes
    Abstract
  122. trait FunctionDefinition extends Definition

    Base trait of any definition that is in the content of a function.

    Base trait of any definition that is in the content of a function.

    Definition Classes
    Abstract
  123. trait GherkinClause extends GherkinValue

    Base class of one of the four Gherkin clauses (Given, When, Then, But)

    Base class of one of the four Gherkin clauses (Given, When, Then, But)

    Definition Classes
    Abstract
  124. trait GherkinValue extends RiddlValue

    Base class of any Gherkin value

    Base class of any Gherkin value

    Definition Classes
    Abstract
  125. trait HandlerDefinition extends Definition

    Base trait of definitions that are part of a Handler Definition

    Base trait of definitions that are part of a Handler Definition

    Definition Classes
    Abstract
  126. 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

    Definition Classes
    Abstract
  127. trait LeafDefinition extends Definition
    Definition Classes
    Abstract
  128. case class LiteralString(loc: Location, s: String) extends RiddlValue 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

    Definition Classes
    Abstract
  129. trait OptionValue extends RiddlValue

    Base trait for option values for any option of a definition.

    Base trait for option values for any option of a definition.

    Definition Classes
    Abstract
  130. 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

    Definition Classes
    Abstract
  131. trait PlantDefinition extends Definition

    Base trait of any definition that occurs in the body of a plant

    Base trait of any definition that occurs in the body of a plant

    Definition Classes
    Abstract
  132. 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.

    Definition Classes
    Abstract
  133. 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.

    Definition Classes
    Abstract
  134. 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. The distinguishing factor is the inclusion of the parsing location given by the loc field.

    Definition Classes
    Abstract
  135. trait SagaDefinition extends Definition

    Base trait of definitions that are part of a Saga Definition

    Base trait of definitions that are part of a Saga Definition

    Definition Classes
    Abstract
  136. trait SagaStepAction extends Action

    An action that can also be used in a SagaStep

    An action that can also be used in a SagaStep

    Definition Classes
    Abstract
  137. trait StoryDefinition extends Definition
    Definition Classes
    Abstract
  138. trait WithOptions[T <: OptionValue] extends Definition

    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

    Definition Classes
    Abstract
  139. case class AggregateConstructionExpression(loc: Location, msg: Expressions.PathIdentifier, 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

    Definition Classes
    Expressions
  140. 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

    Definition Classes
    Expressions
  141. case class ArbitraryCondition(cond: Expressions.LiteralString) extends Condition with Product with Serializable

    Represents an arbitrary condition that is specified merely with a literal string.

    Represents an arbitrary condition 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 condition expression. For example in a when condition:

    example foo { when "the timer has expired" }

    shows the use of an arbitrary condition for the "when" part of a Gherkin example.

    cond

    The arbitrary condition provided as a quoted string

    Definition Classes
    Expressions
  142. case class ArbitraryExpression(cond: Expressions.LiteralString) extends Expression with Product with Serializable

    An arbitrary expression provided by a LiteralString Arbitrary expressions conform to the type based on the context in which they are found.

    An arbitrary expression provided by a LiteralString Arbitrary expressions conform to the type based on the context in which they are found. Another way to think of it is that arbitrary expressions are assignment compatible with any other type For example, in an arithmetic expression like this

    +(42,"number of widgets in a wack-a-mole")

    the arbitrary expression given by the string conforms to a numeric type since the context is the addition of 42 and the arbitrary expression

    Definition Classes
    Expressions
  143. case class ArbitraryOperator(loc: Location, opName: Expressions.LiteralString, arguments: Seq[Expression]) extends Expression with Product with Serializable
    Definition Classes
    Expressions
  144. case class ArgList(args: ListMap[Expressions.Identifier, Expression] = ListMap
    .empty[Identifier, Expression]
    )
    extends RiddlNode with Product with Serializable

    The 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.

    Definition Classes
    Expressions
  145. case class ArithmeticOperator(loc: Location, operator: String, operands: Seq[Expression]) extends NumericExpression 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

    Definition Classes
    Expressions
  146. sealed trait Comparator extends RiddlNode
    Definition Classes
    Expressions
  147. 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

    Definition Classes
    Expressions
  148. sealed trait Condition extends Expression

    Base trait for expressions that yield a boolean value (a condition)

    Base trait for expressions that yield a boolean value (a condition)

    Definition Classes
    Expressions
  149. case class EntityIdExpression(loc: Location, entityId: Expressions.PathIdentifier) extends Expression with Product with Serializable

    A helper class for creating expressions that represent the creation of a new entity identifier for a specific kind of entity.

    A helper class for creating expressions that represent the creation of a new entity identifier for a specific kind of entity.

    loc

    The location of the expression in the source

    entityId

    The PathIdentifier of the entity type for with the Id is created

    Definition Classes
    Expressions
  150. sealed trait Expression extends RiddlValue

    Base trait of all expressions

    Base trait of all expressions

    Definition Classes
    Expressions
  151. 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

    Definition Classes
    Expressions
  152. case class FunctionCallCondition(loc: Location, name: Expressions.PathIdentifier, arguments: ArgList) extends Condition with Product with Serializable

    A RIDDL Function call to the function identified by its path identifier with a matching set of arguments.

    A RIDDL Function call to the function identified by its path identifier with a matching set of arguments. This function must return a boolean since it is defined as a Condition.

    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.

    Definition Classes
    Expressions
  153. case class FunctionCallExpression(loc: Location, name: Expressions.PathIdentifier, arguments: ArgList) extends Expression 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.

    Definition Classes
    Expressions
  154. case class GroupExpression(loc: Location, expressions: Seq[Expression]) extends Expression with Product with Serializable

    A syntactic convenience for grouping a list of expressions.

    A syntactic convenience for grouping a list of expressions.

    loc

    The location of the expression group

    expressions

    The expressions that are grouped

    Definition Classes
    Expressions
  155. case class LiteralDecimal(loc: Location, d: BigDecimal) extends NumericExpression 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

    Definition Classes
    Expressions
  156. case class LiteralInteger(loc: Location, n: BigInt) extends NumericExpression 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

    Definition Classes
    Expressions
  157. abstract class MultiCondition extends Condition

    Base class for conditions with two operands

    Base class for conditions with two operands

    Definition Classes
    Expressions
  158. 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

    Definition Classes
    Expressions
  159. sealed trait NumericExpression extends Expression

    Base trait for expressions that yield a numeric value

    Base trait for expressions that yield a numeric value

    Definition Classes
    Expressions
  160. 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

    Definition Classes
    Expressions
  161. case class Ternary(loc: Location, condition: Condition, expr1: Expression, expr2: Expression) extends Expression 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

    Definition Classes
    Expressions
  162. 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

    Definition Classes
    Expressions
  163. case class UndefinedExpression(loc: Location) extends Expression with Product with Serializable

    Represents a expression that will be specified later and uses the ??? syntax to represent that condition.

    Represents a expression that will be specified later and uses the ??? syntax to represent that condition.

    loc

    The location of the undefined condition

    Definition Classes
    Expressions
  164. case class ValueCondition(loc: Location, path: Expressions.PathIdentifier) extends Condition with Product with Serializable

    Represents a condition that is merely a reference to some Boolean value, presumably an entity state value or parameter.

    Represents a condition that is merely a reference to some Boolean value, presumably an entity state value or parameter.

    loc

    The location of this condition

    path

    The path to the value for this condition

    Definition Classes
    Expressions
  165. case class ValueExpression(loc: Location, path: Expressions.PathIdentifier) extends Expression 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

    Definition Classes
    Expressions
  166. 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.

    Definition Classes
    Expressions
  167. 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

    Definition Classes
    TypeExpression
  168. 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

    Definition Classes
    TypeExpression
  169. 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

    Definition Classes
    TypeExpression
  170. case class AliasedTypeExpression(loc: Location, pid: TypeExpression.PathIdentifier) extends TypeExpression with Product with Serializable

    A TypeExpression that references another type by PathIdentifier

    A TypeExpression that references another type by PathIdentifier

    Definition Classes
    TypeExpression
  171. case class Alternation(loc: Location, of: Seq[AliasedTypeExpression]) 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

    Definition Classes
    TypeExpression
  172. 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

    Definition Classes
    TypeExpression
  173. sealed trait Cardinality extends TypeExpression

    Base trait of the cardinality type expressions

    Base trait of the cardinality type expressions

    Definition Classes
    TypeExpression
  174. 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.

    Definition Classes
    TypeExpression
  175. 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.

    Definition Classes
    TypeExpression
  176. 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

    Definition Classes
    TypeExpression
  177. 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

    Definition Classes
    TypeExpression
  178. case class EntityReferenceTypeExpression(loc: Location, entity: TypeExpression.PathIdentifier) extends TypeExpression with Product with Serializable

    A type expression whose value is a reference to an instance of an entity.

    A type expression whose value is a reference to an instance of an entity.

    loc

    The location of the reference type expression

    entity

    The type of entity referenced by this type expression.

    Definition Classes
    TypeExpression
  179. case class Enumeration(loc: Location, enumerators: Seq[Enumerator]) extends TypeExpression 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.

    Definition Classes
    TypeExpression
  180. case class Enumerator(loc: Location, id: TypeExpression.Identifier, enumVal: Option[Long] = None, brief: Option[TypeExpression.LiteralString] = Option.empty[LiteralString], description: Option[TypeExpression.Description] = None) extends LeafDefinition 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

    Definition Classes
    TypeExpression
  181. case class Field(loc: Location, id: TypeExpression.Identifier, typeEx: TypeExpression, brief: Option[TypeExpression.LiteralString] = Option.empty[LiteralString], description: Option[TypeExpression.Description] = None) extends LeafDefinition with AlwaysEmpty with SagaDefinition with FunctionDefinition 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.

    Definition Classes
    TypeExpression
  182. 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

    Definition Classes
    TypeExpression
  183. 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.

    Definition Classes
    TypeExpression
  184. 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

    Definition Classes
    TypeExpression
  185. sealed trait MessageKind extends AnyRef

    Base of an enumeration for the four kinds of message types

    Base of an enumeration for the four kinds of message types

    Definition Classes
    TypeExpression
  186. case class MessageType(loc: Location, messageKind: MessageKind, fields: Seq[Field] = Seq.empty[Field]) extends AggregateTypeExpression 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

    Definition Classes
    TypeExpression
  187. 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.

    Definition Classes
    TypeExpression
  188. 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

    Definition Classes
    TypeExpression
  189. 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.

    Definition Classes
    TypeExpression
  190. 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

    Definition Classes
    TypeExpression
  191. case class Pattern(loc: Location, pattern: Seq[TypeExpression.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.

    Definition Classes
    TypeExpression
    See also

    https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/regex/Pattern.html

  192. abstract class PredefinedType extends TypeExpression

    Base class of all pre-defined type expressions

    Base class of all pre-defined type expressions

    Definition Classes
    TypeExpression
  193. case class RangeType(loc: Location, min: Long, max: Long) 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 RangeType type expression

    min

    The minimum value of the RangeType

    max

    The maximum value of the RangeType

    Definition Classes
    TypeExpression
  194. 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 location of the real number type expression

    Definition Classes
    TypeExpression
  195. case class SpecificRange(loc: Location, typeExp: TypeExpression, min: Long, max: Long) extends Cardinality with Product with Serializable

    A cardinality type expression that indicates another type expression as having a specific range of instances

    A cardinality type expression that indicates another type expression as having a specific range of instances

    loc

    The location of the one-or-more cardinality

    typeExp

    The type expression that is indicated with a cardinality of one or more.

    min

    The minimum number of items

    max

    The maximum number of items

    Definition Classes
    TypeExpression
  196. case class Strng(loc: Location, min: Option[Long] = None, max: Option[Long] = 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)

    Definition Classes
    TypeExpression
  197. 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.

    Definition Classes
    TypeExpression
  198. 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

    Definition Classes
    TypeExpression
  199. sealed trait TypeExpression extends RiddlValue

    Base trait of an expression that defines a type

    Base trait of an expression that defines a type

    Definition Classes
    TypeExpression
  200. case class URL(loc: Location, scheme: Option[TypeExpression.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.

    Definition Classes
    TypeExpression
  201. 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

    Definition Classes
    TypeExpression
  202. case class UniqueId(loc: Location, entityPath: TypeExpression.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

    Definition Classes
    TypeExpression
  203. 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.

    Definition Classes
    TypeExpression

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def authorsOf(defn: Definition): Seq[AuthorInfo]
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. def kind(c: Container[Definition]): String
  13. 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

  14. 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

    Definition Classes
    TypeExpression
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. object RootContainer extends Serializable
  24. object Identifier extends Serializable
    Definition Classes
    Abstract
  25. object LiteralString extends Serializable
    Definition Classes
    Abstract
  26. case object eq extends Comparator with Product with Serializable
    Definition Classes
    Expressions
  27. case object ge extends Comparator with Product with Serializable
    Definition Classes
    Expressions
  28. case object gt extends Comparator with Product with Serializable
    Definition Classes
    Expressions
  29. case object le extends Comparator with Product with Serializable
    Definition Classes
    Expressions
  30. case object lt extends Comparator with Product with Serializable
    Definition Classes
    Expressions
  31. case object ne extends Comparator with Product with Serializable
    Definition Classes
    Expressions
  32. object Aggregation extends Serializable
    Definition Classes
    TypeExpression
  33. case object CommandKind extends MessageKind with Product with Serializable

    An enumerator value for command types

    An enumerator value for command types

    Definition Classes
    TypeExpression
  34. case object EventKind extends MessageKind with Product with Serializable

    An enumerator value for event types

    An enumerator value for event types

    Definition Classes
    TypeExpression
  35. case object OtherKind extends MessageKind with Product with Serializable
    Definition Classes
    TypeExpression
  36. object PredefinedType
    Definition Classes
    TypeExpression
  37. case object QueryKind extends MessageKind with Product with Serializable

    An enumerator value for query types

    An enumerator value for query types

    Definition Classes
    TypeExpression
  38. case object ResultKind extends MessageKind with Product with Serializable

    An enumerator value for result types

    An enumerator value for result types

    Definition Classes
    TypeExpression

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from ast.TypeExpression

Inherited from Expressions

Inherited from ast.Abstract

Inherited from AnyRef

Inherited from Any

Ungrouped