blob: f0794243a2b5729aa74addeb54f588db7330ffdf [file] [log] [blame]
@GenModel(fileExtensions="data")
@GenModel(modelName="DataDSL")
@GenModel(prefix="DataDSL")
@GenModel(updateClasspath="false")
@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 v1.0
which accompanies this distribution, and is available at
http{//www.eclipse.org/legal/epl-v10.html
Based on ideas from Xtext, Xtend, Xcore
Contributors{
Joerg Riegel - Initial implementation
")
@Ecore(nsURI="http://osbp.eclipse.org/xtext/datainterchange/DataDSL")
@Ecore(nsPrefix="datadsl")
@Ecore(rootPackage="datadsl")
package org.eclipse.osbp.xtext.datainterchange
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.entity.LEntity
import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute
import org.eclipse.osbp.dsl.semantic.entity.LEntityReference
import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3
class DataInterchangeModel{
contains DataInterchangePackage[] packages
}
type InternalEObject wraps InternalEObject
class DataInterchangeLazyResolver {
op EObject eResolveProxy(InternalEObject proxy) {
return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
}
}
class DataInterchangePackage extends LPackage{
String title
contains DataInterchange[] datInts
}
class DataInterchangeBase extends DataInterchangeLazyResolver{
String name
}
class DataInterchange extends DataInterchangeBase {
boolean description
String descriptionValue
boolean createReport
int elementSize
ProgressBarStylesEnum progressBarStyle
contains DataInterchangeFile fileEndpoint
contains DataInterchangeBean[] path
boolean refreshEnabled
String refresh
}
interface DataInterchangeFile extends DataInterchangeLazyResolver{
}
class DataInterchangeFileXML extends DataInterchangeFile {
String fileURL
}
class DataInterchangeFileCSV extends DataInterchangeFile {
String fileURL
String delimiter
String quoteCharacter
int skipLines
boolean indent
String encoding
boolean strict
boolean validateHeader
}
class DataInterchangeFileEDI extends DataInterchangeFile {
String fileURL
String mappingModel
boolean validate
}
class DataInterchangeBean extends DataInterchangeLazyResolver {
refers LEntity entity
boolean markLatest
refers LEntityAttribute latestProperty
boolean recordElement
boolean recordList
String elementMap
contains DataInterchangeLookup[] lookup
contains DataInterchangeFormat[] format
contains DataInterchangeExpression[] expression
contains DataInterchangeMapping[] mappings
}
class DataInterchangeFormat extends DataInterchangeLazyResolver {
refers LEntityAttribute targetProperty
String locale
String format
}
interface DataInterchangeExpression extends DataInterchangeLazyResolver {
refers LEntityAttribute targetProperty
}
class DataInterchangeEntityExpression extends DataInterchangeExpression {
refers LEntity entity
refers LEntityAttribute property
}
class DataInterchangePredefinedExpression extends DataInterchangeExpression {
PredefinedBeanEnum bean
PredefinedBeanTypeEnum beanType
}
class DataInterchangeLookup extends DataInterchangeLazyResolver {
refers LEntity entity
refers LEntityReference targetProperty
refers LEntityAttribute queryProperty
String elementMap
String dataMap
boolean allowNoResult
boolean allowNonuniqueResult
boolean cached
int cacheSize
contains DataInterchangeMarkerPath markerPath
}
class DataInterchangeMarkerPath extends DataInterchangeLazyResolver {
contains DataInterchangeMarkerEntity[] path
}
class DataInterchangeMarkerEntity extends DataInterchangeLazyResolver {
boolean markLatest
refers LEntity markerEntity
refers LEntityAttribute markerProperty
}
class DataInterchangeMapping extends DataInterchangeLazyResolver {
refers LEntityAttribute property
String data
}
enum PredefinedBeanEnum{
now as 'NowDate'
start as 'StartDate'
UUID as 'UniversallyUniqueIdentifier'
}
enum PredefinedBeanTypeEnum{
Date as 'Date'
Millis as 'Milliseconds'
Nanos as 'Nanoseconds'
random as 'Random'
execContext as 'ExecuteContext'
}
enum ProgressBarStylesEnum{
none as 'none'
normal as 'normal'
important as 'important'
}