This class represents a string that correlates to an object. It is given a Guid that is logged into the participant directory, so that its name or its Guid can be changed without losing coherency. It is usually an object name.
An Expression is a class that contains a list of expression elements, a sequence of text snippets, references to things that have names (i.e. steps & transitions), and macros.
An abstract base class for Rote Strings, Dual Mode Strings and Macros.
Abstract base class for all macros. Derives from ExpressionElement, and from that, obtains the ability to be expressed as friendly, hostile or expanded format.
A participant dictionary is a dictionary of Expression Elements that is mapped by name and by Guid. Expressions are an array of references to these elements, and formatting of these expressions is achieved by taking some format of each expression element in sequence. There are three representations of these expressions - Rote Strings, Dual Mode Strings and Macros. It is in concatenating the particular (Hostile, Friendly, Expanded) formats of those elements that an expression expresses itself.Note: the reason that guids are needed is to support serialization through the User-Hostile mapping, and to permit renaming of steps such as when a step is flattened up into its parent, and its name goes from, e.g. "Prepare-Step" to "B : Xfr_Liquid2.Prepare-Step".
A Macro that expands into an expression that evaluates true only if all (explicitly named) predecessors to the owner transition are true. If there are no predecessors, then the expression is simply "True".
A class that represents a string in an expression that does not correlate to anything outside the expression, such as the string "' = TRUE AND '"
Expressions are prepresented as Hostile (with Guids), Friendly (names, including macro names) and Expanded (all names, plus macros evaluated.)