| /** |
| * |
| * Copyright (c) 2011, 2016 - 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 |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| * |
| */ |
| grammar org.eclipse.osbp.xtext.blip.BlipDSL with org.eclipse.osbp.xtext.oxtype.OXtype |
| |
| import "http://osbp.eclipse.org/xtext/blip/BlipDSL" |
| |
| import "http://osbp.eclipse.org/dsl/dto/v1" as dto |
| import "http://www.eclipse.org/emf/2002/Ecore" as ecore |
| import "http://osbp.eclipse.org/dsl/common/types/v1" as types |
| import "http://www.omg.org/spec/BPMN/20100524/MODEL-XMI" as bpmn2 |
| import "http://www.eclipse.org/xtext/xbase/Xtype" as xtype |
| import "http://osbp.eclipse.org/xtext/functionlibrarydsl/FunctionLibraryDSL" as function |
| |
| BlipModel: |
| importSection=XImportSection? |
| blippackage=BlipPackage; |
| |
| BlipPackage returns types::LPackage: |
| {BlipPackage} 'package' name=QualifiedName blips+=Blip*; |
| |
| Blip: |
| {Blip} 'process' name=TRANSLATABLEID |
| ((hasImage?='image' image=STRING)? & |
| (hasIcon?='icon' icon=IconsEnum)? & |
| (hasLogging?='logging')? & |
| (description?='describedBy' descriptionValue=TRANSLATABLESTRING)?) |
| ('workload' workload=BlipWorkload)? |
| ('functiongroup' functionGroup=[function::FunctionLibraryBlipGroup])? |
| 'bpmn' process=[bpmn2::Process|QualifiedName] |
| ('{' |
| (items+=BlipItem)* |
| '}')? |
| ; |
| |
| BlipWorkload: |
| {BlipWorkload} 'using' source=BlipDto ('predefine' '{' filters+=BlipFilter* '}')?; |
| |
| BlipFilter: |
| {BlipFilter} 'set' filterName=STRING 'to' filterValue=STRING; |
| |
| BlipDto: |
| {BlipDto} 'dto' dtoRef=[dto::LDto]; |
| |
| BlipItem: |
| BlipStartEvent | BlipEndEvent | BlipUserTask | BlipCallActivity | BlipScriptTask | BlipServiceTask | BlipPersistTask | BlipExclusiveSplitGateway | BlipInclusiveSplitGateway; |
| |
| BlipStartEvent: |
| {BlipStartEvent} 'startevent' name=TRANSLATABLEID 'for' event=[bpmn2::StartEvent|QualifiedName]; |
| |
| BlipEndEvent: |
| {BlipEndEvent} 'endevent' name=TRANSLATABLEID 'for' event=[bpmn2::EndEvent|QualifiedName] |
| endHandling=EndEventHandlingEnum |
| ; |
| |
| BlipUserTask: |
| {BlipUserTask} 'usertask' name=TRANSLATABLEID 'for' task=[bpmn2::UserTask|QualifiedName] |
| ('operatesOn' dtoPath=BlipDtoPath)? |
| ('onentry' onEntry=[function::FunctionLibraryFunction])? |
| ('onexit' onExit=[function::FunctionLibraryFunction])? |
| ; |
| |
| BlipCallActivity: |
| {BlipCallActivity} 'callActivity' name=TRANSLATABLEID 'for' callActivity=[bpmn2::CallActivity|QualifiedName] |
| ('onentry' onEntry=[function::FunctionLibraryFunction])? |
| ('onexit' onExit=[function::FunctionLibraryFunction])? |
| ; |
| |
| BlipScriptTask: |
| {BlipScriptTask} 'scripttask' name=TRANSLATABLEID 'for' task=[bpmn2::ScriptTask|QualifiedName] |
| 'function' function=[function::FunctionLibraryFunction] |
| ; |
| |
| BlipPersistTask: |
| {BlipPersistTask} 'persisttask' name=TRANSLATABLEID 'for' task=[bpmn2::ScriptTask|QualifiedName] |
| 'function' function=[function::FunctionLibraryFunction] |
| ; |
| |
| BlipServiceTask: |
| {BlipServiceTask} 'servicetask' name=TRANSLATABLEID 'for' task=[bpmn2::ServiceTask|QualifiedName] |
| ('onentry' onEntry=[function::FunctionLibraryFunction])? |
| 'run' ( |
| 'asynchron' timeoutInSecs=INT 'secsTimeout' | |
| executionMode=ServiceExecutionModeEnum |
| ) |
| 'as' ( |
| 'function' function=[function::FunctionLibraryFunction] | |
| 'webservice' webServiceInterface=STRING webServiceOperation=STRING |
| ) |
| ('onexit' onExit=[function::FunctionLibraryFunction])? |
| ; |
| |
| BlipOutGoing: |
| {BlipOutGoing} 'case' name=TRANSLATABLEID 'for' sequenceFlow=[bpmn2::SequenceFlow|QualifiedName] |
| 'when' constraint=[function::FunctionLibraryTest]; |
| |
| BlipOutGoingDefault: |
| {BlipOutGoingDefault} isDefault?='default' name=TRANSLATABLEID 'for' sequenceFlow=[bpmn2::SequenceFlow|QualifiedName]; |
| |
| BlipExclusiveSplitGateway: |
| {BlipExclusiveSplitGateway} 'exclusivesplitgateway' name=TRANSLATABLEID 'for' gateway=[bpmn2::Gateway|QualifiedName] |
| '{' (outgoings+=BlipOutGoing)* outgoings+=BlipOutGoingDefault '}'; |
| |
| BlipInclusiveSplitGateway: |
| {BlipInclusiveSplitGateway} 'inclusivesplitgateway' name=TRANSLATABLEID 'for' gateway=[bpmn2::Gateway|QualifiedName] |
| '{' (outgoings+=BlipOutGoing)* '}'; |
| |
| BlipDtoPath: |
| {BlipDtoPath} dtoPath=QualifiedDtoPath; |
| |
| QualifiedDtoPath: |
| ValidID (=>'.' ValidID)*; |
| |
| TRANSLATABLEID: |
| ID; |
| |
| TRANSLATABLESTRING: |
| STRING; |
| |
| enum ServiceExecutionModeEnum: |
| SYNC = "synchron" | |
| // ASYNCHRON = "asynchron" | |
| ONEWAY = "oneway"; |
| |
| enum EndEventHandlingEnum: |
| TERMINATES_PROCESS = 'terminates process' | |
| ENDS_TOKEN_PATH = 'ends token path' |
| ; |
| |
| enum IconsEnum: |
| ICON_PLUS = 'plus' | |
| ICON_MINUS = 'minus' | |
| ICON_INFO = 'info' | |
| ICON_LEFT = 'left' | |
| ICON_UP = 'up' | |
| ICON_RIGHT = 'right' | |
| ICON_DOWN = 'down' | |
| ICON_EXCHANGE = 'exchange' | |
| ICON_HOME = 'home' | |
| ICON_HOME_1 = 'home-1' | |
| ICON_UP_DIR = 'up-dir' | |
| ICON_RIGHT_DIR = 'right-dir' | |
| ICON_DOWN_DIR = 'down-dir' | |
| ICON_LEFT_DIR = 'left-dir' | |
| ICON_STAR = 'star' | |
| ICON_STAR_EMPTY = 'star-empty' | |
| ICON_TH_LIST = 'th-list' | |
| ICON_HEART_EMPTY = 'heart-empty' | |
| ICON_HEART = 'heart' | |
| ICON_MUSIC = 'music' | |
| ICON_TH = 'th' | |
| ICON_FLAG = 'flag' | |
| ICON_COG = 'cog' | |
| ICON_ATTENTION = 'attention' | |
| ICON_MAIL = 'mail' | |
| ICON_EDIT = 'edit' | |
| ICON_PENCIL = 'pencil' | |
| ICON_OK = 'ok' | |
| ICON_CANCEL_1 = 'cancel-1' | |
| ICON_CANCEL = 'cancel' | |
| ICON_CANCEL_CIRCLE = 'cancel-circle' | |
| ICON_HELP = 'help' | |
| ICON_PLUS_CIRCLE = 'plus-circle' | |
| ICON_MINUS_CIRCLE = 'minus-circle' | |
| ICON_RIGHT_THIN = 'right-thin' | |
| ICON_FORWARD = 'forward' | |
| ICON_CW = 'cw' | |
| ICON_LEFT_THIN = 'left-thin' | |
| ICON_UP_THIN = 'up-thin' | |
| ICON_DOWN_THIN = 'down-thin' | |
| ICON_LEFT_BOLD = 'left-bold' | |
| ICON_RIGHT_BOLD = 'right-bold' | |
| ICON_UP_BOLD = 'up-bold' | |
| ICON_DOWN_BOLD = 'down-bold' | |
| ICON_USER_ADD = 'user-add' | |
| ICON_HELP_CIRCLE = 'help-circle' | |
| ICON_INFO_CIRCLE = 'info-circle' | |
| ICON_BACK = 'back' | |
| ICON_EYE = 'eye' | |
| ICON_TAG = 'tag' | |
| ICON_UPLOAD_CLOUD = 'upload-cloud' | |
| ICON_REPLY = 'reply' | |
| ICON_EXPORT = 'export' | |
| ICON_PRINT = 'print' | |
| ICON_RETWEET = 'retweet' | |
| ICON_COMMENT = 'comment' | |
| ICON_VCARD = 'vcard' | |
| ICON_LOCATION = 'location' | |
| ICON_TRASH = 'trash' | |
| ICON_RESIZE_FULL = 'resize-full' | |
| ICON_RESIZE_SMALL = 'resize-small' | |
| ICON_DOWN_OPEN = 'down-open' | |
| ICON_LEFT_OPEN = 'left-open' | |
| ICON_RIGHT_OPEN = 'right-open' | |
| ICON_UP_OPEN = 'up-open' | |
| ICON_ARROWS_CW = 'arrows-cw' | |
| ICON_CHART_PIE = 'chart-pie' | |
| ICON_SEARCH_1 = 'search-1' | |
| ICON_USER = 'user' | |
| ICON_USERS = 'users' | |
| ICON_MONITOR = 'monitor' | |
| ICON_FOLDER = 'folder' | |
| ICON_DOC = 'doc' | |
| ICON_CALENDAR = 'calendar' | |
| ICON_CHART = 'chart' | |
| ICON_ATTACH = 'attach' | |
| ICON_UPLOAD = 'upload' | |
| ICON_DOWNLOAD = 'download' | |
| ICON_MOBILE = 'mobile' | |
| ICON_CAMERA = 'camera' | |
| ICON_LOCK = 'lock' | |
| ICON_LOCK_OPEN = 'lock-open' | |
| ICON_BELL = 'bell' | |
| ICON_LINK = 'link' | |
| ICON_CLOCK = 'clock' | |
| ICON_BLOCK = 'block'; |