blob: 78ffd283ee80c9862663434f322338a69cad00f0 [file] [log] [blame]
/**
*
* 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 v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*
*/
@GenModel(fileExtensions="entitymock")
@GenModel(modelName="EntityMockDSL")
@GenModel(prefix="EntityMockDSL")
@GenModel(updateClasspath="false")
// force bigModel == false
@GenModel(loadInitialization="false")
@GenModel(literalsInterface="true")
@GenModel(copyrightText="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 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:
Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation
")
@Ecore(nsURI="http://osbp.eclipse.org/xtext/entitymock/EntityMockDSL")
@Ecore(nsPrefix="entitymockdsl")
@Ecore(rootPackage="entitymockdsl")
package org.eclipse.osbp.xtext.entitymock
import org.eclipse.osbp.xtext.datainterchange.DataInterchange
import org.eclipse.emf.ecore.EObject
import org.eclipse.emf.ecore.InternalEObject
import org.eclipse.xtext.common.types.JvmTypeReference
import org.eclipse.xtext.xbase.XExpression
import org.eclipse.osbp.dsl.semantic.common.types.LEnum
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.xtext.oxtype.resource.EcoreUtil3
import org.eclipse.osbp.dsl.semantic.common.types.LEnumLiteral
import org.eclipse.xtext.xtype.XImportSection
class EntityMockModel {
contains XImportSection importSection
contains EntityMockPackage[] packages
}
type InternalEObject wraps InternalEObject
class EntityMockLazyResolver {
op EObject eResolveProxy(InternalEObject proxy) {
return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
}
}
class EntityMockPackage extends LPackage {
contains EntityMock[] mocks
}
class EntityMock {
String name
boolean description
String descriptionValue
int runPriority
contains RunningDataInterchanges datainterchanges
contains EntityMockResources resources
contains EntityMockObjects objects
contains EntityMockEntities entities
}
class RunningDataInterchanges {
contains RunningDataInterchange[] datainterchanges
}
class RunningDataInterchange {
refers DataInterchange datainterchangeRef
String fileURL
}
class EntityMockResources {
contains EntityMockResource[] resources
}
class EntityMockResource extends LEnum {
contains EntityMockResourceAttribute[] attributes
contains EntityMockResourceDataRow[] datarows
}
class EntityMockResourceAttribute extends LEnum {
}
class EntityMockResourceDataRow extends LEnumLiteral {
String[] values
}
class EntityMockObjects {
contains EntityMockObject[] objects
}
class EntityMockObject {
String name
contains EntityMockObjectEnum[] enumerations
contains IEntityMockObjectAttribute[] attributes
contains EntityMockObjectFunction[] calculations
}
class EntityMockObjectEnum extends IEntityMockObjectUsable {
String name
refers LEnum usingResource
}
class IEntityMockObjectAttribute extends EntityMockLazyResolver {
String name
}
class EntityMockObjectPlainValue extends IEntityMockObjectAttribute, IEntityMockObjectUsable {
String[] values
}
class EntityMockObjectResourceValue extends IEntityMockObjectAttribute, IEntityMockObjectUsable {
refers EntityMockObjectEnum resourceEnum
refers EntityMockResourceAttribute resourceAttribute
}
class EntityMockObjectArrayValue extends IEntityMockObjectAttribute, IEntityMockObjectUsable {
refers EntityMockObjectEnum enumeration
contains EntityMockObjectItemValue[] items
}
class EntityMockObjectItemValue {
refers LEnumLiteral datarow
String[] values
}
class EntityMockObjectEmbed extends IEntityMockObjectAttribute, IEntityMockObjectUsable, EntityMockLazyResolver {
refers EntityMockObject object
}
class EntityMockObjectFunction extends IEntityMockObjectAttribute, IEntityMockObjectUsable {
contains JvmTypeReference oftype
contains EntityMockObjectFunctionParameter[] params
contains XExpression body
}
class EntityMockObjectFunctionParameter {
contains JvmTypeReference parameterType
refers IEntityMockObjectUsable name
}
class EntityMockObjectFill extends IEntityMockObjectAttribute, IEntityMockObjectUsable {
contains PropertyFillerType fillerType
}
class PropertyFillerType extends EntityMockLazyResolver {}
class PropertyFillerDateType extends PropertyFillerType {}
class PropertyFillerBoolean extends PropertyFillerType {}
class PropertyFillerDoubleType extends PropertyFillerType {}
class PropertyFillerIntegerType extends PropertyFillerType {}
class PropertyFillerTextType extends PropertyFillerType {}
class PropertyFillerDateFuture extends PropertyFillerDateType {
int dateFutureYears
}
class PropertyFillerDatePast extends PropertyFillerDateType {
int datePastYears
}
class PropertyFillerDateRange extends PropertyFillerDateType {
int dateBeginYears
int dateEndYears
}
class PropertyFillerSignedDoubleRange extends PropertyFillerDoubleType {
int decimals
double beginRange
double endRange
refers LEntityAttribute beginRangeRef
refers LEntityAttribute endRangeRef
double rounded
}
class PropertyFillerSignedDoubleRandom extends PropertyFillerDoubleType {
double[] items
}
class PropertyFillerSignedIntegerRange extends PropertyFillerIntegerType {
int beginRange
int endRange
refers LEntityAttribute beginRangeRef
refers LEntityAttribute endRangeRef
int rounded
}
class PropertyFillerSignedIntegerRandom extends PropertyFillerIntegerType {
int[] items
}
class PropertyFillerTextRandom extends PropertyFillerTextType {
String[] items
}
class PropertyFillerTextParagraphs extends PropertyFillerTextType {
int count
}
class PropertyFillerTextSentences extends PropertyFillerTextType {
int count
}
class PropertyFillerTextWords extends PropertyFillerTextType {
int count
}
class PropertyFillerUnsignedDoubleRange extends PropertyFillerDoubleType {
int decimals
double beginRange
double endRange
refers LEntityAttribute beginRangeRef
refers LEntityAttribute endRangeRef
double rounded
}
class PropertyFillerUnsignedDoubleRandom extends PropertyFillerDoubleType {
double[] items
}
class PropertyFillerUnsignedIntegerRange extends PropertyFillerIntegerType {
int beginRange
int endRange
refers LEntityAttribute beginRangeRef
refers LEntityAttribute endRangeRef
int rounded
}
class PropertyFillerUnsignedIntegerRandom extends PropertyFillerIntegerType {
int[] items
}
class EntityMockEntities {
contains EntityMockEntity[] entities
}
class EntityMockEntity extends EntityMockLazyResolver {
String name
refers LEntity entityRef
int minRows
int maxRows
contains IIterate iterate
refers LEntityAttribute iterator
contains EntityMockTemplate[] templates
contains IEntityMockAttribute[] attributes
contains EntityMockEntityFunction[] calculations
refers EntityMockResource byResource
contains EntityMockByResourceAttribute[] byResourceAttributes
boolean createBlobMapping
}
class IIterate {}
class IntegerIterate extends IIterate {
int from
int until
int step
}
class DateIterate extends IIterate {
contains Date from
contains Date until
int stepCount
EDateStepType stepType
}
class Date {
boolean yesterday
boolean today
boolean tomorrow
int offsetCount
EDateStepType offsetType
int year
int month
int day
}
enum EDateStepType {
DAYS as 'days'
WEEKS as 'weeks'
MONTHS as 'months'
YEARS as 'years'
}
class EntityMockByResourceAttribute {
refers LEntityAttribute attributeRef
refers EntityMockResourceAttribute resourceAttribute
}
class EntityMockTemplate extends EntityMockLazyResolver {
String name
refers EntityMockObject object
}
class IEntityMockObjectUsable extends EntityMockLazyResolver {}
class IEntityMockEntityUsable extends EntityMockLazyResolver {}
class IEntityMockAttribute extends IEntityMockEntityUsable {}
class EntityMockReferencedObjectAttribute extends EntityMockLazyResolver {
refers EntityMockTemplate template
refers EntityMockObjectEmbed[] embedded
refers IEntityMockObjectUsable attribute
}
class EntityMockAttributeByObject extends IEntityMockAttribute {
refers LEntityAttribute attributeRef
contains EntityMockReferencedObjectAttribute reference
refers EntityMockObjectEnum resourceEnum
refers EntityMockResourceAttribute resourceAttribute
}
class EntityMockAttributeFiller extends IEntityMockAttribute {
refers LEntityAttribute attributeRef
contains PropertyFillerType fillerType
}
class EntityMockAttributeByReference extends IEntityMockAttribute {
refers LEntityReference attributeRef
refers EntityMockEntity mockedEntity
int optionalFor
}
class EntityMockEntityFunction extends IEntityMockEntityUsable {
refers LEntityAttribute attributeRef
contains EntityMockEntityFunctionParameter[] params
contains XExpression body
}
class EntityMockEntityNestedAttribute{
refers LEntityReference reference
refers LEntityAttribute attribute
}
class EntityMockEntityFunctionParameter {
refers LEntityAttribute attributeRef
contains EntityMockEntityNestedAttribute nestedAttribute
}