blob: c033d0a03f561da9339da757f45b418c4ef58a87 [file] [log] [blame]
@GenModel(fileExtensions="statemachine")
@GenModel(modelName="StatemachineDSL")
@GenModel(prefix="StatemachineDSL")
@GenModel(updateClasspath="false")
// force bigModel == false
@GenModel(loadInitialization="false")
@GenModel(literalsInterface="true")
@GenModel(copyrightText="Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Based on ideas from Xtext, Xtend, Xcore
Contributors:
Joerg Riegel - Initial implementation
")
@Ecore(nsURI="http://osbp.eclipse.org/xtext/statemachine/StatemachineDSL")
@Ecore(nsPrefix="statemachinedsl")
@Ecore(rootPackage="statemachinedsl")
package org.eclipse.osbp.xtext.statemachine
import org.eclipse.emf.ecore.EObject
import org.eclipse.emf.ecore.InternalEObject
import org.eclipse.osbp.dsl.semantic.common.types.LFeature
import org.eclipse.osbp.dsl.semantic.common.types.LPackage
import org.eclipse.osbp.dsl.semantic.dto.LDto
import org.eclipse.osbp.dsl.semantic.dto.LDtoAttribute
import org.eclipse.osbp.dsl.semantic.dto.LDtoInheritedAttribute
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGuard
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryOperation
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryStatemachineGroup
import org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3
import org.eclipse.osbp.xtext.reportdsl.Report
import org.eclipse.xtext.xtype.XImportSection
class FSMModel {
contains XImportSection importSection
contains FSMPackage[] packages
}
type InternalEObject wraps InternalEObject
class FSMLazyResolver {
op EObject eResolveProxy(InternalEObject proxy) {
return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
}
}
class FSMBase extends FSMLazyResolver{
String name
}
class FSMPackage extends LPackage{
contains FSM[] statemachines
}
class FSM extends FSMBase{
boolean description
String descriptionValue
refers FSMEvent initialEvent
refers FSMState initialState
contains FSMEvent[] events
contains FSMControl[] controls
contains FSMState[] states
}
interface FSMControl extends FSMBase{
}
class FSMControlButton extends FSMControl, FSMControlVisibility{
FSMControlButtonEventType eventType
contains FSMControlButtonAttribute[] buttons
boolean hasRange
int start
int end
String rangedName
}
class FSMControlField extends FSMControl{
contains FSMControlFieldAttribute[] fields
contains FSMControlFieldLayout[] layouts
}
class FSMControlDTO extends FSMControl{
contains FSMControlDTOAttribute[] dtos
contains FSMControlFilter[] filters
}
class FSMControlScheduler extends FSMControl{
contains FSMControlSchedulerAttribute[] schedulers
}
class FSMControlPeripheral extends FSMControl{
contains FSMPeripheralDeviceLineDisplay[] lineDisplays
contains FSMPeripheralDeviceDisplay[] displays
contains FSMPeripheralDevicePOSPrinter[] posPrinters
contains FSMPeripheralDeviceCashDrawer[] cashDrawers
contains FSMPeripheralDevicePT[] paymentTerminals
contains FSMPeripheralDeviceSignature[] signaturePads
}
class FSMControlButtonAttribute extends FSMControlVisibility{
boolean hasImage
String image
contains FSMControlButtonAttributeEvent event
}
interface FSMControlButtonAttributeEvent extends FSMLazyResolver {
}
class FSMControlButtonAttributeEventKeyboard extends FSMControlButtonAttributeEvent {
String keystroke
}
class FSMControlButtonAttributeEventIdentity extends FSMControlButtonAttributeEvent {
int identity
}
class FSMControlButtonAttributeEventEvent extends FSMControlButtonAttributeEvent {
refers FSMEvent event
}
interface FSMControlVisibility extends FSMBase{
}
class FSMControlFieldAttribute extends FSMControlVisibility{
contains FSMFieldType attributeType
}
class FSMControlFieldLayout extends FSMControlVisibility{
}
class FSMControlDTOAttribute extends FSMBase{
contains FSMDTOType attributeType
boolean hasEvent
refers FSMEvent event
boolean isAttached
refers FSMPeripheralDeviceDisplay display
}
interface FSMPeripheralDevice extends FSMBase {
}
class FSMPeripheralDeviceDisplay extends FSMPeripheralDevice {
refers FSMControlDTOAttribute output
}
class FSMPeripheralDeviceLineDisplay extends FSMPeripheralDevice {
}
class FSMPeripheralDevicePOSPrinter extends FSMPeripheralDevice {
}
class FSMPeripheralDeviceCashDrawer extends FSMPeripheralDevice {
}
class FSMPeripheralDevicePT extends FSMPeripheralDevice {
}
class FSMPeripheralDeviceSignature extends FSMPeripheralDevice {
}
class FSMControlSchedulerAttribute extends FSMBase{
int delay
refers FSMEvent event
}
class FSMEvent extends FSMBase{
}
class FSMState extends FSMBase{
contains FSMTrigger[] triggers
contains FSMAction[] conditions
contains FSMOperation identity
refers FSMControlFieldAttribute keystroke
FSMFunctionalKeyCodes functionalKeyCode
refers FSMEvent functionalKeyEvent
boolean hasKeyOperation
contains FSMOperation keyOperation
}
class FSMTrigger extends FSMLazyResolver {
boolean hasTransition
refers FSMState transition
refers FSMEvent[] triggers
contains FSMGuard[] guards
contains FSMAction[] actions
}
interface FSMAction extends FSMLazyResolver{
}
class FSMActionPeripheralBlinkRate extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int blinkRate
}
class FSMActionPeripheralClear extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
}
class FSMActionPeripheralCreateWindow extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int viewportRow
int viewportColumn
int viewportHeight
int viewportWidth
int windowHeight
int windowWidth
}
class FSMActionPeripheralCursorType extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
FSMLineDisplayCursorType cursorType
}
class FSMActionPeripheralDestroyWindow extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
}
class FSMActionPeripheralDeviceBrightness extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int brightness
}
class FSMActionPeripheralDisplayText extends FSMAction {
refers FSMPeripheralDeviceDisplay device
refers LDtoAttribute attribute
contains FSMActionFieldConcatenation text
}
class FSMActionPeripheralLineDisplayText extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
contains FSMActionFieldConcatenation text
boolean hasType
FSMLineDisplayTextType textType
}
class FSMActionPeripheralLineDisplayTextAt extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int row
int column
contains FSMActionFieldConcatenation text
boolean hasType
FSMLineDisplayTextType textType
}
class FSMActionPeripheralInterCharacterWait extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int wait
}
class FSMActionPeripheralMarqueeFormat extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
FSMLineDisplayMarqueeFormat format
}
class FSMActionPeripheralMarqueeRepeatWait extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int wait
}
class FSMActionPeripheralMarqueeType extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
FSMLineDisplayMarqueeType marqueeType
}
class FSMActionPeripheralMarqueeUnitWait extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
int wait
}
class FSMActionPeripheralScroll extends FSMAction {
refers FSMPeripheralDeviceLineDisplay device
FSMLineDisplayScrollTextType direction
int units
}
class FSMActionPeripheralOpenDrawer extends FSMAction {
refers FSMPeripheralDeviceCashDrawer device
}
class FSMActionPeripheralPrintBarcode extends FSMAction {
refers FSMPeripheralDevicePOSPrinter device
String data
FSMPOSPrinterBarcodeType barcodeType
}
class FSMActionPeripheralPrintBitmap extends FSMAction {
refers FSMPeripheralDevicePOSPrinter device
int bitmapId
}
class FSMActionPeripheralPrintCut extends FSMAction {
refers FSMPeripheralDevicePOSPrinter device
contains FSMActionFieldConcatenation text
}
class FSMActionPeripheralPrintRegisterBitmap extends FSMAction {
int bitmapId
String name
}
class FSMActionPeripheralPrintNormal extends FSMAction {
refers FSMPeripheralDevicePOSPrinter device
contains FSMActionFieldConcatenation text
FSMPOSPrinterBarcodeType barcodeType
}
class FSMActionPeripheralPTOpen extends FSMAction {
refers FSMPeripheralDevicePT device
contains FSMActionFieldConcatenation host
contains FSMActionFieldConcatenation port
}
class FSMActionPeripheralPTClose extends FSMAction {
refers FSMPeripheralDevicePT device
}
class FSMActionPeripheralPTReversal extends FSMAction {
refers FSMPeripheralDevicePT device
contains FSMActionFieldConcatenation password
contains FSMActionFieldConcatenation receipt
}
class FSMActionPeripheralPTAcknowledge extends FSMAction {
refers FSMPeripheralDevicePT device
}
class FSMActionPeripheralPTRegistration extends FSMAction {
refers FSMPeripheralDevicePT device
contains FSMActionFieldConcatenation password
String configuration
}
class FSMActionPeripheralPTAuthorization extends FSMAction {
refers FSMPeripheralDevicePT device
contains FSMActionFieldConcatenation amount
}
class FSMActionPeripheralBeeper extends FSMAction {
int duration
int frequency
}
class FSMActionPeripheralPlayer extends FSMAction {
String tune
}
class FSMActionPeripheralSound extends FSMAction {
String name
}
class FSMActionPeripheralPTResponse extends FSMActionFieldSource {
refers FSMPeripheralDevicePT device
}
class FSMActionPeripheralPrintReport extends FSMAction {
refers Report report
refers FSMStorage key
boolean hasFilter
boolean hasPrintService
contains FSMActionFieldConcatenation printService
}
class FSMActionPeripheralSignatureOpen extends FSMAction {
refers FSMPeripheralDeviceSignature device
}
class FSMActionPeripheralSignatureClose extends FSMAction {
refers FSMPeripheralDeviceSignature device
}
class FSMActionPeripheralSignatureClear extends FSMAction {
refers FSMPeripheralDeviceSignature device
}
class FSMActionPeripheralSignatureCapture extends FSMAction {
refers FSMPeripheralDeviceSignature device
}
class FSMActionPeripheralSignatureIdle extends FSMAction {
refers FSMPeripheralDeviceSignature device
}
class FSMActionPeripheralSignatureLabel extends FSMAction {
String okLabel
String clearLabel
String cancelLabel
refers FSMPeripheralDeviceSignature device
}
class FSMSignatureRetrieve extends FSMActionFieldSource {
refers FSMPeripheralDeviceSignature device
}
interface FSMActionFieldSource extends FSMAction {
}
class FSMActionFieldSourceString extends FSMActionFieldSource {
String text
}
class FSMActionFieldSourceNumber extends FSMActionFieldSource {
Double value
}
class FSMActionFieldSourceInteger extends FSMActionFieldSource {
int value
}
class FSMActionFieldSourceBoolean extends FSMActionFieldSource {
boolean value
}
class FSMActionFieldSourceEvaluate extends FSMActionFieldSource {
FSMEvaluationType evaluationtype
}
class FSMActionFieldSourceTranslate extends FSMActionFieldSource {
String text
}
interface FSMRef extends FSMBase {}
class FSMDotExpression extends FSMRef{
contains FSMRef ref
refers LFeature tail
}
class FSMDtoRef extends FSMRef{
refers FSMControlDTOAttribute dto
}
class FSMActionFieldSourceDtoAttribute extends FSMActionFieldSource {
refers FSMControlDTOAttribute dto
refers LDtoInheritedAttribute attribute
}
class FSMActionFieldSourceEvent extends FSMActionFieldSource {
}
class FSMActionConditionalTransition extends FSMAction {
refers FSMState transition
contains FSMGuard guard
contains FSMAction[] actions
}
class FSMOperationParameter extends FSMAction {
contains FSMActionFieldConcatenation source
}
class FSMOperation extends FSMActionFieldSource {
refers FunctionLibraryStatemachineGroup group
refers FunctionLibraryOperation operation
contains FSMOperationParameter first
contains FSMOperationParameter[] more
}
class FSMGuard extends FSMLazyResolver{
refers FunctionLibraryStatemachineGroup group
refers FunctionLibraryGuard guard
boolean hasOnFail
String onFailDescription
String onFailCaption
FSMUserMessageType onFailType
}
class FSMFunction extends FSMActionFieldSource {
refers FunctionLibraryStatemachineGroup group
refers FunctionLibraryFunction function
contains FSMOperationParameter first
contains FSMOperationParameter[] more
}
class FSMStorageRetrieve extends FSMActionFieldSource {
String key
String attribute
}
class FSMStorage extends FSMAction {
String key
String attribute
contains FSMActionFieldConcatenation content
}
class FSMActionFieldConcatenation extends FSMAction {
contains FSMActionFieldSource first
contains FSMActionFieldSource[] more
}
class FSMActionFieldSet extends FSMAction {
refers FSMControlFieldAttribute attribute
contains FSMActionFieldConcatenation source
}
class FSMActionFieldKeystroke extends FSMAction {
refers FSMControlFieldAttribute attribute
String keystroke
}
class FSMActionFieldClear extends FSMAction {
refers FSMControlFieldAttribute attribute
}
class FSMActionFieldGet extends FSMActionFieldSource {
refers FSMControlFieldAttribute attribute
}
class FSMActionFieldFilterToggle extends FSMActionFieldSource {
refers FSMControlFilter filter
}
class FSMActionFieldRemove extends FSMActionFieldSource {
refers FSMControlFieldAttribute attribute
}
class FSMActionItemVisible extends FSMAction {
refers FSMControlVisibility attribute
}
class FSMActionItemInvisible extends FSMAction {
refers FSMControlVisibility attribute
}
class FSMActionButtonCaption extends FSMAction {
refers FSMControlButtonAttribute attribute
contains FSMActionFieldConcatenation caption
}
class FSMActionButtonImage extends FSMAction {
refers FSMControlButtonAttribute attribute
String image
}
class FSMActionDTOFind extends FSMAction {
refers FSMControlDTOAttribute dto
refers LDtoInheritedAttribute attribute
contains FSMActionFieldConcatenation search
}
class FSMActionDTOClear extends FSMAction {
refers FSMControlDTOAttribute dto
}
class FSMActionScheduler extends FSMAction {
refers FSMControlSchedulerAttribute scheduler
}
class FSMDTOType extends FSMLazyResolver{
refers LDto attributeType
}
class FSMFieldType extends FSMLazyResolver {
FSMInternalType attributeType
}
interface FSMAbstractFilter extends FSMLazyResolver {
}
class FSMFilterProperty extends FSMLazyResolver {
contains FSMRef path
}
class FSMFilter {
contains FSMAbstractFilter source
}
class FSMJunctionFilter extends FSMAbstractFilter {
contains FSMFilter first
contains FSMFilter[] more
}
class FSMAndFilter extends FSMJunctionFilter{
}
class FSMOrFilter extends FSMJunctionFilter{
}
class FSMBetweenFilter extends FSMAbstractFilter {
contains FSMFilterProperty propertyId
contains FSMActionFieldSource start
contains FSMActionFieldSource end
}
class FSMCompareFilter extends FSMAbstractFilter {
contains FSMFilterProperty propertyId
contains FSMActionFieldSource operand
FSMCompareOperationEnum operation
}
class FSMIsNullFilter extends FSMAbstractFilter {
contains FSMFilterProperty propertyId
}
class FSMLikeFilter extends FSMAbstractFilter {
contains FSMFilterProperty propertyId
contains FSMActionFieldSource value
boolean ignoreCase
}
class FSMNotFilter extends FSMAbstractFilter {
contains FSMFilter filter
}
class FSMStringFilter extends FSMAbstractFilter {
contains FSMFilterProperty propertyId
String filterString
boolean onlyMatchPrefix
boolean ignoreCase
}
class FSMControlFilter extends FSMBase{
contains FSMFilter filter
}
enum FSMInternalType {
BOOLEAN as 'Boolean'
INTEGER as 'Integer'
LONG as 'Long'
DOUBLE as 'Double'
STRING as 'String'
DATE as 'Date'
SUGGESTTEXT as 'SuggestText'
EMBEDDABLEEVENT as 'EmbeddableEvent'
}
enum FSMControlButtonEventType {
KEYBOARD as 'keyboard'
TRIGGER as 'trigger'
IDENTITY as 'identity'
}
enum FSMCompareOperationEnum {
EQUAL as 'equal'
GREATER as 'greater'
LESS as 'less'
GREATER_OR_EQUAL as 'greaterOrEqual'
LESS_OR_EQUAL as 'lessOrEqual'
}
enum FSMEvaluationType {
IP_ADDRESS as 'getIPAddress'
HOSTNAME as 'getHostName'
NOW as 'getNow'
USER_AGENT_INFO as 'getUserAgentInfo'
IS_TOUCH_DEVICE as 'isTouchDevice'
IS_HTTPS as 'isHttps'
BROWSER_LOCALE as 'getBrowserLocale'
USER_NAME as 'getUserName'
USER_PASSWORD as 'getUserPassword'
USER_EMAIL as 'getUserEmail'
USER_POSITION as 'getUserPosition'
USER_PRTSERVICE as 'getUserPrintService'
SCREEN_WIDTH as 'getSceenWidth'
SCREEN_HEIGHT as 'getScreenHeight'
TRIGGER as 'getTrigger'
}
enum FSMUserMessageType {
HUMANIZED_MESSAGE as 'humanized'
WARNING_MESSAGE as 'warning'
ERROR_MESSAGE as 'error'
TRAY_NOTIFICATION as 'tray'
ASSISTIVE_NOTIFICATION as 'assistive'
}
enum FSMLineDisplayCursorType {
DISP_CT_NONE as 'none'
DISP_CT_FIXED as 'fixed'
DISP_CT_BLOCK as 'block'
DISP_CT_HALFBLOCK as 'halfblock'
DISP_CT_UNDERLINE as 'underline'
DISP_CT_REVERSE as 'reverse'
DISP_CT_OTHER as 'other'
DISP_CT_BLINK as 'blink'
}
enum FSMLineDisplayMarqueeType {
DISP_MT_NONE as 'none'
DISP_MT_UP as 'up'
DISP_MT_DOWN as 'down'
DISP_MT_LEFT as 'left'
DISP_MT_RIGHT as 'right'
DISP_MT_INIT as 'init'
}
enum FSMLineDisplayMarqueeFormat {
DISP_MF_WALK as 'walk'
DISP_MF_PLACE as 'place'
}
enum FSMLineDisplayTextType {
DISP_DT_NORMAL as 'normal'
DISP_DT_BLINK as 'blink'
DISP_DT_REVERSE as 'reverse'
DISP_DT_BLINK_REVERSE as 'blinkreverse'
}
enum FSMLineDisplayScrollTextType {
DISP_ST_UP as 'up'
DISP_ST_DOWN as 'down'
DISP_ST_LEFT as 'left'
DISP_ST_RIGHT as 'right'
}
enum FSMPOSPrinterBarcodeType {
PTR_BCS_UPCA as 'upca'
PTR_BCS_UPCE as 'upcb'
PTR_BCS_JAN8 as 'jan8'
PTR_BCS_EAN8 as 'ean8'
PTR_BCS_JAN13 as 'jan13'
PTR_BCS_EAN13 as 'ean13'
PTR_BCS_TF as 'tf'
PTR_BCS_ITF as 'itf'
PTR_BCS_Codabar as 'codeabar'
PTR_BCS_Code39 as 'code39'
PTR_BCS_Code93 as 'code93'
PTR_BCS_Code128 as 'code128'
PTR_BCS_UPCA_S as 'upca_s'
PTR_BCS_UPCE_S as 'upce_s'
PTR_BCS_UPCD1 as 'upcd1'
PTR_BCS_UPCD2 as 'upcd2'
PTR_BCS_UPCD3 as 'upcd3'
PTR_BCS_UPCD4 as 'upcd4'
PTR_BCS_UPCD5 as 'upcd5'
PTR_BCS_EAN8_S as 'ean8_s'
PTR_BCS_EAN13_S as 'ean13_s'
PTR_BCS_EAN128 as 'ean128'
PTR_BCS_OCRA as 'orca'
PTR_BCS_OCRB as 'ocrb'
PTR_BCS_Code128_Parsed as 'code128_parsed'
PTR_BCS_GS1DATABAR as 'gs1databar'
PTR_BCS_GS1DATABAR_E as 'gs1databar_e'
PTR_BCS_GS1DATABAR_S as 'gs1databar_s'
PTR_BCS_GS1DATABAR_E_S as 'gs1databar_e_s'
PTR_BCS_PDF417 as 'pdf417'
PTR_BCS_MAXICODE as 'maxicode'
PTR_BCS_DATAMATRIX as 'datamatrix'
PTR_BCS_QRCODE as 'qrcode'
PTR_BCS_UQRCODE as 'uqrcode'
PTR_BCS_AZTEC as 'aztec'
PTR_BCS_UPDF417 as 'updf417'
}
enum FSMFunctionalKeyCodes {
BACKSPACE as 'backspaceKey'
TAB as 'tabKey'
ENTER as 'enterKey'
ESC as 'escKey'
PGUP as 'pgupKey'
PGDOWN as 'pgdownKey'
END as 'endKey'
HOME as 'homeKey'
LEFTARROW as 'leftarrowKey'
UPARROW as 'uparrowKey'
RIGHTARROW as 'rightarrowKey'
DOWNARROW as 'downarrowKey'
INSERT as 'insertKey'
DELETE as 'deleteKey'
F1 as 'f1'
F2 as 'f2'
F3 as 'f3'
F4 as 'f4'
F5 as 'f5'
F6 as 'f6'
F7 as 'f7'
F8 as 'f8'
F9 as 'f9'
F10 as 'f10'
F11 as 'f11'
F12 as 'f12'
}