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).
- Alphabetic
- By Inheritance
- AST
- TypeExpression
- Expressions
- Abstract
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- sealed trait Adaptation extends AdaptorDefinition
- 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.
- case class AppendAction(loc: Location, value: AST.Expression, target: AST.PathIdentifier, description: Option[AST.Description] = None) extends Action with Product with Serializable
- 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
- 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.
- 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
The author's email address
- organization
The name of the organization the author is associated with
- title
The author's title within the organization
- url
A URL associated with the author
- case class BecomeAction(loc: Location, entity: EntityRef, handler: HandlerRef, description: Option[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
- 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
- type Command = Type
- 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.
- 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
- 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
- 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
- sealed abstract class ContextOption extends OptionValue
Base trait for all options a Context can have.
- case class ContextPackageOption(loc: Location, args: Seq[AST.LiteralString]) extends ContextOption with Product with Serializable
- 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
- 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.
- sealed abstract class DomainOption extends OptionValue
Base trait for all options a Domain can have.
- 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
- 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.
- 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
- case class EntityEventSourced(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should store its state in an event sourced fashion.
An EntityOption that indicates that this entity should store its state in an event sourced fashion.
- loc
The location of the option.
- case class 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
- 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.
- 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.
- 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.
- 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
- case class EntityMessageQueue(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should allow receipt of commands and queries via a message queue.
An EntityOption that indicates that this entity should allow receipt of commands and queries via a message queue.
- loc
The location at which this option occurs.
- sealed abstract class EntityOption extends EntityValue with OptionValue
Abstract base class of options for entities
- case class EntityRef(loc: Location, id: 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.
- case class EntityTransient(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should not persist its state and is only available in transient memory.
An EntityOption that indicates that this entity should not persist its state and is only available in transient memory. All entity values will be lost when the service is stopped.
- loc
The location of the option.
- sealed trait EntityValue extends RiddlValue
Base trait of any value used in the definition of an entity
- case class EntityValueOption(loc: Location) extends EntityOption with Product with Serializable
An EntityOption that indicates that this entity should store only the latest value without using event sourcing.
An EntityOption that indicates that this entity should store only the latest value without using event sourcing. In other words, the history of changes is not stored.
- loc
The location of the option
- case class 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
- type Event = Type
- 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
- 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.
- 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
- 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
- case class Flow(loc: Location) extends ProcessorShape with Product with Serializable
- 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.
- case class FunctionCallAction(loc: Location, function: AST.PathIdentifier, arguments: AST.ArgList, description: Option[AST.Description] = None) extends SagaStepAction with Product with Serializable
- case class FunctionOption(loc: Location) extends ContextOption with Product with Serializable
A context's "function" option that suggests
A context's "function" option that suggests
- loc
The location of the function option
- case class FunctionRef(loc: Location, id: 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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- loc
The location of the InletJoint
- id
The name of the inlet joint
- inletRef
A reference to the inlet being connected
- pipe
A reference to the pipe being connected
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the joint
- case class InletRef(loc: Location, id: AST.PathIdentifier) extends Reference[Inlet] with StreamletRef[Inlet] with Product with Serializable
A reference to an Inlet
- 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.
- sealed trait Joint extends LeafDefinition with AlwaysEmpty with PlantDefinition with ContextDefinition
Sealed base trait for both kinds of Joint definitions
- case class Merge(loc: Location) extends ProcessorShape with Product with Serializable
- 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
- sealed trait MessageRef extends Reference[Type]
Base trait for the four kinds of message references
- 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
- case class Multi(loc: Location) extends ProcessorShape with Product with Serializable
- 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.
- case class OtherRef(loc: Location) extends Reference[Type] with MessageRef with Product with Serializable
- 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.
- 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.
- loc
The location of the OutletJoint
- id
The name of the OutletJoint
- outletRef
A reference to the outlet being connected
- pipe
A reference to the pipe being connected
- brief
A brief description (one sentence) for use in documentation
- description
An optional description of the OutletJoint
- case class OutletRef(loc: Location, id: AST.PathIdentifier) extends Reference[Outlet] with StreamletRef[Outlet] with Product with Serializable
A reference to an Outlet
- case class ParallelOption(loc: Location) extends SagaOption with Product with Serializable
A SagaOption that indicates parallel execution of the saga actions.
A SagaOption that indicates parallel execution of the saga actions.
- loc
The location of the parallel option
- 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.
- 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.
- 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
- 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
- trait ProcessorDefinition extends Definition
Base trait of definitions defined in a processor
- sealed trait ProcessorShape extends RiddlValue
- 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
- 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
- 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
- type Query = Type
- 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
- 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
- type Result = Type
- 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
- 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
- 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
- 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.
- sealed abstract class SagaOption extends OptionValue
Base trait for all options applicable to a saga.
- 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
- case class SequentialOption(loc: Location) extends SagaOption with Product with Serializable
A SagaOption that indicates sequential (serial) execution of the saga actions.
A SagaOption that indicates sequential (serial) execution of the saga actions.
- loc
The location of the sequential option
- case class ServiceOption(loc: Location) extends ContextOption with Product with Serializable
A context's "service" option.
A context's "service" option. This option suggests the bounded context is intended to be a DDD service, similar to a wrapper but without any persistent state and more of a stateless service aspect to its nature
- loc
The location at which the option occurs
- case class SetAction(loc: Location, target: 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
- case class Sink(loc: Location) extends ProcessorShape with Product with Serializable
- case class Source(loc: Location) extends ProcessorShape with Product with Serializable
- case class Split(loc: Location) extends ProcessorShape with Product with Serializable
- case class State(loc: Location, id: 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.
- 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
- 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
- trait Streamlet extends LeafDefinition with ProcessorDefinition
Base trait of an Inlet or Outlet definition
- sealed trait StreamletRef[+T <: Definition] extends Reference[T]
- 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
- 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
- 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
- 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.
- trait TypeContainer extends AnyRef
Base trait of any definition that is a container and contains types
- 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
- 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
- trait WithAuthors extends Definition
- sealed trait WithIncludes extends Container[Definition]
Added to definitions that support includes
- sealed trait WithTerms extends AnyRef
Added to definitions that support a list of term definitions
- trait WithTypes extends Definition
- case class WrapperOption(loc: Location) extends ContextOption with Product with Serializable
A context's "wrapper" option.
A context's "wrapper" option. This option suggests the bounded context is to be used as a wrapper around an external system and is therefore at the boundary of the context map
- loc
The location of the wrapper option
- case class 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
- 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
- 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
- trait AlwaysEmpty extends Definition
- Definition Classes
- Abstract
- case class BlockDescription(loc: Location = Location.empty, lines: Seq[LiteralString] = Seq.empty[LiteralString]) extends Description with Product with Serializable
- Definition Classes
- Abstract
- trait BrieflyDescribedValue extends RiddlValue
- Definition Classes
- Abstract
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- case class FileDescription(loc: Location, file: Path) extends Description with Product with Serializable
- Definition Classes
- Abstract
- 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
- 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
- trait GherkinValue extends RiddlValue
Base class of any Gherkin value
Base class of any Gherkin value
- Definition Classes
- Abstract
- 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
- 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
- trait LeafDefinition extends Definition
- Definition Classes
- Abstract
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- trait StoryDefinition extends Definition
- Definition Classes
- Abstract
- 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
- 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
- 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
- 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
- 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
- case class ArbitraryOperator(loc: Location, opName: Expressions.LiteralString, arguments: Seq[Expression]) extends Expression with Product with Serializable
- Definition Classes
- Expressions
- case class ArgList(args: ListMap[Expressions.Identifier, Expression] = ListMap
.empty[Identifier, Expression]) extends RiddlNode with Product with SerializableThe arguments of a FunctionCallExpression and AggregateConstructionExpression is a mapping between an argument name and the expression that provides the value for that argument.
The arguments of a FunctionCallExpression and AggregateConstructionExpression is a mapping between an argument name and the expression that provides the value for that argument.
- args
A mapping of Identifier to Expression to provide the arguments for the function call.
- Definition Classes
- Expressions
- 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
- sealed trait Comparator extends RiddlNode
- Definition Classes
- Expressions
- 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
- 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
- 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
- sealed trait Expression extends RiddlValue
Base trait of all expressions
Base trait of all expressions
- Definition Classes
- Expressions
- case class False(loc: Location) extends Condition with Product with Serializable
A condition value for "false"
- 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
- 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
- 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
- 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
- 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
- abstract class MultiCondition extends Condition
Base class for conditions with two operands
Base class for conditions with two operands
- Definition Classes
- Expressions
- 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
- 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
- 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
- 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
- case class True(loc: Location) extends Condition with Product with Serializable
A condition value for "true"
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- sealed trait Cardinality extends TypeExpression
Base trait of the cardinality type expressions
Base trait of the cardinality type expressions
- Definition Classes
- TypeExpression
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- abstract class PredefinedType extends TypeExpression
Base class of all pre-defined type expressions
Base class of all pre-defined type expressions
- Definition Classes
- TypeExpression
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def authorsOf(defn: Definition): Seq[AuthorInfo]
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def kind(c: Container[Definition]): String
- def kind(definition: DescribedValue): String
A function to provide the kind of thing that a DescribedValue is
A function to provide the kind of thing that a DescribedValue is
- definition
The DescribedValue for which the kind is returned
- returns
A string for the kind of DescribedValue
- 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
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object RootContainer extends Serializable
- object Identifier extends Serializable
- Definition Classes
- Abstract
- object LiteralString extends Serializable
- Definition Classes
- Abstract
- case object eq extends Comparator with Product with Serializable
- Definition Classes
- Expressions
- case object ge extends Comparator with Product with Serializable
- Definition Classes
- Expressions
- case object gt extends Comparator with Product with Serializable
- Definition Classes
- Expressions
- case object le extends Comparator with Product with Serializable
- Definition Classes
- Expressions
- case object lt extends Comparator with Product with Serializable
- Definition Classes
- Expressions
- case object ne extends Comparator with Product with Serializable
- Definition Classes
- Expressions
- object Aggregation extends Serializable
- Definition Classes
- TypeExpression
- case object CommandKind extends MessageKind with Product with Serializable
An enumerator value for command types
An enumerator value for command types
- Definition Classes
- TypeExpression
- case object EventKind extends MessageKind with Product with Serializable
An enumerator value for event types
An enumerator value for event types
- Definition Classes
- TypeExpression
- case object OtherKind extends MessageKind with Product with Serializable
- Definition Classes
- TypeExpression
- object PredefinedType
- Definition Classes
- TypeExpression
- case object QueryKind extends MessageKind with Product with Serializable
An enumerator value for query types
An enumerator value for query types
- Definition Classes
- TypeExpression
- 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
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated