Difference between revisions of "Statemachine DSL"

From OS.bee documentation
Jump to: navigation, search
Line 9: Line 9:
  
  
More information can be found at:
+
=== 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.
*'''cube''' - The abstraction of a Mondrian cube. It contains further elements such as dimension, measure.
+
*'''statemachine''' - The container for the implementation of the state pattern.
*'''dimension''' -  Defines an attribute, or set of attributes, which is a collection of hierarchies, and by which you can divide measures into sub-categories. For example, you might wish to break down product sales by their color, the gender of the customer and the store in which the product was sold;  color, gender, and store are all dimensions.
+
*'''events''' -  Contains all user defined events.
*'''hierarchy''' - Defines a set of members organized into a structure for convenient analysis. For example, the store hierarchy consists of the store name, city, state, and nation. A hierarchy allows you to form intermediate sub-totals:  the sub-total for a state is the sum of the sub-totals of all of the cities in that state, each of which is the sum of the sub-totals of all the stores in that city.
+
*'''event''' - Defines a single event by id.
*'''entity''' - Defines which table and columns of the table the “hierarchy” uses.
+
*'''controls''' - The container for all beans to be controlled by the state machine.
*'''level''' - Defines a collection of members which have the same distance from the root of the hierarchy.
+
*'''control''' - Defines a bean (https://en.wikipedia.org/wiki/JavaBeans) to operate as event source and to be controlled by an action.
*'''property''' - Defines a member property. The definition is against a level, but the property is available to all members.
+
*'''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

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.

Keywords