Difference between revisions of "Statemachine DSL"
Line 9: | Line 9: | ||
− | + | === Further reading === | |
https://en.wikipedia.org/wiki/Finite-state_machine | https://en.wikipedia.org/wiki/Finite-state_machine | ||
Line 24: | Line 24: | ||
*'''package''' - The root element that contains all the other elements. A model can contain multiple packages. | *'''package''' - The root element that contains all the other elements. A model can contain multiple packages. | ||
*'''import''' declarations - Used to import external models or even Java classes. | *'''import''' declarations - Used to import external models or even Java classes. | ||
− | *''' | + | *'''statemachine''' - The container for the implementation of the state pattern. |
− | *''' | + | *'''events''' - Contains all user defined events. |
− | *''' | + | *'''event''' - Defines a single event by id. |
− | *''' | + | *'''controls''' - The container for all beans to be controlled by the state machine. |
− | *''' | + | *'''control''' - Defines a bean (https://en.wikipedia.org/wiki/JavaBeans) to operate as event source and to be controlled by an action. |
− | *''' | + | *'''attribute''' - Defines a member property. The definition is against a level, but the property is available to all members. |
*'''dimensionUsage''' - Defines the shared dimension usage in a cube. | *'''dimensionUsage''' - Defines the shared dimension usage in a cube. | ||
*'''measure''' - The members of a special dimension, a quantity being measured, for example, unit sales of a product, or cost price of inventory items. | *'''measure''' - The members of a special dimension, a quantity being measured, for example, unit sales of a product, or cost price of inventory items. | ||
===Keywords=== | ===Keywords=== |
Revision as of 09:23, 3 April 2017
Contents
Copyright Notice
All rights are reserved by Compex Systemhaus GmbH. In particular, duplications, translations, microfilming, saving and processing in electronic systems are protected by copyright. Use of this manual is only authorized with the permission of Compex Systemhaus GmbH. Infringements of the law shall be punished in accordance with civil and penal laws. We have taken utmost care in putting together texts and images. Nevertheless, the possibility of errors cannot be completely ruled out. The Figures and information in this manual are only given as approximations unless expressly indicated as binding. Amendments to the manual due to amendments to the standard software remain reserved. Please note that the latest amendments to the manual can be accessed through our helpdesk at any time. The contractually agreed regulations of the licensing and maintenance of the standard software shall apply with regard to liability for any errors in the documentation. Guarantees, particularly guarantees of quality or durability can only be assumed for the manual insofar as its quality or durability are expressly stipulated as guaranteed. If you would like to make a suggestion, the Compex Team would be very pleased to hear from you.
(c) 2016-2024 Compex Systemhaus GmbH
Introduction
State Machine
State Machine or extended finite-state machine (EFSM) is a mathematical model of computation and represents an abstract machine that can be in exactly one of a finite number of states at any given time. The State Machine can change from one state to another in response to external events. The change from one state to another is called a transition. A FSM is defined by a list of its states, its initial state, and the conditions for each transition. The condition for a transition is called guard. There can be many guards protecting a transition to be triggered. Every guard is joined with a logical AND operation, so every guard must evaluate to true, to trigger a protected transition. Data operations can occur before a transition. They are called actions. Actions prepare the next upcoming state, calculate things or display information.
Further reading
https://en.wikipedia.org/wiki/Finite-state_machine
https://en.wikipedia.org/wiki/Extended_finite-state_machine
https://en.wikipedia.org/wiki/UML_state_machine
Statemachine DSL
Statemachine DSL implements the state pattern (https://en.wikipedia.org/wiki/State_pattern) and interconnects UI model, FunctionLibrary, DTO and peripheral services like JavaPOS, ZVT protocol and others.
The main semantic elements of the StatemachineDSL are:
- package - The root element that contains all the other elements. A model can contain multiple packages.
- import declarations - Used to import external models or even Java classes.
- statemachine - The container for the implementation of the state pattern.
- events - Contains all user defined events.
- event - Defines a single event by id.
- controls - The container for all beans to be controlled by the state machine.
- control - Defines a bean (https://en.wikipedia.org/wiki/JavaBeans) to operate as event source and to be controlled by an action.
- attribute - Defines a member property. The definition is against a level, but the property is available to all members.
- dimensionUsage - Defines the shared dimension usage in a cube.
- measure - The members of a special dimension, a quantity being measured, for example, unit sales of a product, or cost price of inventory items.