blob: 66a118090e8672209f9b61ffa64f6269ef0d3e25 [file] [log] [blame]
@GenModel(fileExtensions="blip")
@GenModel(modelName="BlipDSL")
@GenModel(prefix="BlipDSL")
@GenModel(updateClasspath="false")
@GenModel(loadInitialization="false")
@GenModel(literalsInterface="true")
@GenModel(copyrightText="Copyright (c) 2014, Loetz GmbH&Co.KG (Heidelberg)
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:
Loetz GmbH&Co.KG - Initial implementation
")
@Ecore(nsURI="http://osbp.eclipse.org/xtext/blip/BlipDSL")
@Ecore(nsPrefix="blipdsl")
@Ecore(rootPackage="blipdsl")
package org.eclipse.osbp.xtext.blip
import org.eclipse.bpmn2.CallActivity
import org.eclipse.bpmn2.Event
import org.eclipse.bpmn2.Gateway
import org.eclipse.bpmn2.Process
import org.eclipse.bpmn2.ScriptTask
import org.eclipse.bpmn2.SequenceFlow
import org.eclipse.bpmn2.ServiceTask
import org.eclipse.bpmn2.Task
import org.eclipse.emf.ecore.EObject
import org.eclipse.emf.ecore.InternalEObject
import org.eclipse.osbp.dsl.semantic.common.types.LPackage
import org.eclipse.osbp.dsl.semantic.dto.LDto
import org.eclipse.osbp.xtext.oxtype.resource.EcoreUtil3
import org.eclipse.osbp.xtext.blip.common.BlipHelper
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryBlipGroup
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction
import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryTest
import org.eclipse.xtext.xtype.XImportSection
class BlipModel{
contains XImportSection importSection
contains LPackage blippackage
}
type InternalEObject wraps InternalEObject
class BlipLazyResolver {
op EObject eResolveProxy(InternalEObject proxy) {
return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
}
}
class BlipPackage extends LPackage{
contains Blip[] blips
}
class BlipBase extends BlipLazyResolver{
String name
}
class Blip extends BlipBase{
//String resourceName
refers Process process
boolean description
String descriptionValue
boolean hasImage
String image
boolean hasIcon
IconsEnum icon
boolean hasLogging
refers FunctionLibraryBlipGroup functionGroup
contains BlipWorkload workload
contains BlipItem[] items
}
class BlipWorkload extends BlipLazyResolver{
contains BlipDto source
contains BlipFilter[] filters
}
class BlipFilter extends BlipLazyResolver{
String filterName
String filterValue
}
class BlipDto extends BlipLazyResolver{
refers LDto dtoRef
}
class BlipDtoPath {
String dtoPath
}
class BlipItem {
String name
contains BlipDtoPath dtoPath
/** get the operative LDto defined by the dtoPath */
op LDto getOperativeLDto() {
BlipHelper.getOperativeLDto(this)
}
}
class BlipEvent extends BlipItem {
refers Event event
}
class BlipStartEvent extends BlipEvent {
}
enum EndEventHandlingEnum {
TERMINATES_PROCESS as 'terminates process'
ENDS_TOKEN_PATH as 'ends token path'
}
class BlipEndEvent extends BlipEvent {
EndEventHandlingEnum endHandling
}
class BlipUserTask extends BlipItem {
refers Task task
refers FunctionLibraryFunction onEntry
refers FunctionLibraryFunction onExit
}
class BlipCallActivity extends BlipItem {
refers CallActivity callActivity
refers FunctionLibraryFunction onEntry
refers FunctionLibraryFunction onExit
}
class BlipScript extends BlipItem {
refers ScriptTask task
refers FunctionLibraryFunction function
}
class BlipScriptTask extends BlipScript {
}
class BlipPersistTask extends BlipScript {
}
class BlipServiceTask extends BlipItem {
refers ServiceTask task
refers FunctionLibraryFunction onEntry
refers FunctionLibraryFunction onExit
ServiceExecutionModeEnum executionMode
int timeoutInSecs
refers FunctionLibraryFunction function
String webServiceInterface
String webServiceOperation
}
class BlipOutGoing extends BlipItem {
refers SequenceFlow sequenceFlow
refers FunctionLibraryTest constraint
boolean isDefault
}
class BlipOutGoingDefault extends BlipOutGoing {
}
class BlipSplitGateway extends BlipItem {
refers Gateway gateway
contains BlipOutGoing[] outgoings
}
class BlipExclusiveSplitGateway extends BlipSplitGateway {
}
class BlipInclusiveSplitGateway extends BlipSplitGateway {
}
enum ServiceExecutionModeEnum {
SYNC as "synchron",
// ASYNCHRON as "asynchron",
ONEWAY as "oneway"
}
enum IconsEnum{
ICON_PLUS as 'plus'
ICON_MINUS as 'minus'
ICON_INFO as 'info'
ICON_LEFT as 'left'
ICON_UP as 'up'
ICON_RIGHT as 'right'
ICON_DOWN as 'down'
ICON_EXCHANGE as 'exchange'
ICON_HOME as 'home'
ICON_HOME_1 as 'home-1'
ICON_UP_DIR as 'up-dir'
ICON_RIGHT_DIR as 'right-dir'
ICON_DOWN_DIR as 'down-dir'
ICON_LEFT_DIR as 'left-dir'
ICON_STAR as 'star'
ICON_STAR_EMPTY as 'star-empty'
ICON_TH_LIST as 'th-list'
ICON_HEART_EMPTY as 'heart-empty'
ICON_HEART as 'heart'
ICON_MUSIC as 'music'
ICON_TH as 'th'
ICON_FLAG as 'flag'
ICON_COG as 'cog'
ICON_ATTENTION as 'attention'
ICON_MAIL as 'mail'
ICON_EDIT as 'edit'
ICON_PENCIL as 'pencil'
ICON_OK as 'ok'
ICON_CANCEL_1 as 'cancel-1'
ICON_CANCEL as 'cancel'
ICON_CANCEL_CIRCLE as 'cancel-circle'
ICON_HELP as 'help'
ICON_PLUS_CIRCLE as 'plus-circle'
ICON_MINUS_CIRCLE as 'minus-circle'
ICON_RIGHT_THIN as 'right-thin'
ICON_FORWARD as 'forward'
ICON_CW as 'cw'
ICON_LEFT_THIN as 'left-thin'
ICON_UP_THIN as 'up-thin'
ICON_DOWN_THIN as 'down-thin'
ICON_LEFT_BOLD as 'left-bold'
ICON_RIGHT_BOLD as 'right-bold'
ICON_UP_BOLD as 'up-bold'
ICON_DOWN_BOLD as 'down-bold'
ICON_USER_ADD as 'user-add'
ICON_HELP_CIRCLE as 'help-circle'
ICON_INFO_CIRCLE as 'info-circle'
ICON_BACK as 'back'
ICON_EYE as 'eye'
ICON_TAG as 'tag'
ICON_UPLOAD_CLOUD as 'upload-cloud'
ICON_REPLY as 'reply'
ICON_EXPORT as 'export'
ICON_PRINT as 'print'
ICON_RETWEET as 'retweet'
ICON_COMMENT as 'comment'
ICON_VCARD as 'vcard'
ICON_LOCATION as 'location'
ICON_TRASH as 'trash'
ICON_RESIZE_FULL as 'resize-full'
ICON_RESIZE_SMALL as 'resize-small'
ICON_DOWN_OPEN as 'down-open'
ICON_LEFT_OPEN as 'left-open'
ICON_RIGHT_OPEN as 'right-open'
ICON_UP_OPEN as 'up-open'
ICON_ARROWS_CW as 'arrows-cw'
ICON_CHART_PIE as 'chart-pie'
ICON_SEARCH_1 as 'search-1'
ICON_USER as 'user'
ICON_USERS as 'users'
ICON_MONITOR as 'monitor'
ICON_FOLDER as 'folder'
ICON_DOC as 'doc'
ICON_CALENDAR as 'calendar'
ICON_CHART as 'chart'
ICON_ATTACH as 'attach'
ICON_UPLOAD as 'upload'
ICON_DOWNLOAD as 'download'
ICON_MOBILE as 'mobile'
ICON_CAMERA as 'camera'
ICON_LOCK as 'lock'
ICON_LOCK_OPEN as 'lock-open'
ICON_BELL as 'bell'
ICON_LINK as 'link'
ICON_CLOCK as 'clock'
ICON_BLOCK as 'block'
}