catch up with branch daily
Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.xtext.entitymock/src/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.entitymock/src/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.xtend
index 9841fc2..dfaf422 100644
--- a/org.eclipse.osbp.xtext.entitymock/src/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.entitymock/src/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.xtend
@@ -92,6 +92,7 @@
import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
import org.osgi.service.component.annotations.Component
import org.slf4j.Logger
+import org.eclipse.osbp.dsl.semantic.entity.LEntityReference
/**
* <p>Infers a JVM model from the source model.</p>
@@ -1224,9 +1225,8 @@
''')
}
EntityMockAttributeByReference: {
- append(''' internal.set«WordUtils.capitalize(attribute.attributeRef.name)»((«EntityUtils.
- getDtoFQNForLEntity(attribute.attributeRef.type)»)getMockData().get("«attribute.
- attributeRef.name»"));
+ append(''' internal.set«WordUtils.capitalize(attribute.attributeRef.name)»(«attribute.attributeRef.baseMockDataTypeCasting('''getMockData().get("«attribute.
+ attributeRef.name»")''')»);
''')
}
}
@@ -1255,7 +1255,7 @@
}
]
}
-
+
def boolean isReferenceOnExistingDto(EntityMockEntityFunctionParameter param) {
val entityMock = param.eContainer.eContainer as EntityMockEntity
for (attribute : entityMock.attributes) {
@@ -1319,6 +1319,18 @@
}
}
+
+ /**
+ * generate the code for casting a mock data to the data type of the entity attribute
+ */
+ def String baseMockDataTypeCasting(LEntityReference entityRef, String getting) {
+ var text = EntityUtils.getDtoFQNForLEntity(entityRef.type)
+ if (entityRef.multiplicity !== null) {
+ text = '''List<«text»>'''
+ }
+ return '''(«text»)«getting»'''
+ }
+
/**
* generate the code for casting a mock data to the data type of the entity attribute
*/
@@ -1329,6 +1341,9 @@
if (attribute.type instanceof LBean) {
return '''(«EntityUtils.getDtoFQNForLBean(attribute.type as LBean)»)(«getting»)'''
}
+ if (attribute.type instanceof LBean) {
+ return '''(«EntityUtils.getDtoFQNForLBean(attribute.type as LBean)»)(«getting»)'''
+ }
var etype = dtType.getBasicType(attribute)
switch (etype) {
case BOOLEAN: return '''asBoolean(«getting»)'''
@@ -1577,7 +1592,6 @@
«iteratorLine»
List list«mockEntity.name» = new ArrayList<«mockEntity.entityDtoFQN»>();
entityMockDbFiller.notifyInitializationStep("generate «mockEntity.entityMockName(mock)»", 0, 0.6);
- persistenceService.registerPersistenceUnit(entity«mockEntity.name».getPersistenceUnit(), «mockEntity.entityFQN».class);
while (iterator«mockEntity.name».hasNext()) {
list«mockEntity.name».add(entity«mockEntity.name».generateEntity(iterator«mockEntity.name».next()));
}
diff --git a/org.eclipse.osbp.xtext.entitymock/xtend-gen/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.entitymock/xtend-gen/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.java
index 029a6c8..d30f88d 100644
--- a/org.eclipse.osbp.xtext.entitymock/xtend-gen/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.entitymock/xtend-gen/org/eclipse/osbp/xtext/entitymock/jvmmodel/EntityMockDSLJvmModelInferrer.java
@@ -33,10 +33,12 @@
import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions;
import org.eclipse.osbp.dsl.semantic.common.types.LEnum;
import org.eclipse.osbp.dsl.semantic.common.types.LEnumLiteral;
+import org.eclipse.osbp.dsl.semantic.common.types.LMultiplicity;
import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
import org.eclipse.osbp.dsl.semantic.entity.LBean;
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.runtime.common.event.IEventDispatcher;
import org.eclipse.osbp.ui.api.customfields.IBlobService;
import org.eclipse.osbp.ui.api.datamart.IDataMart;
@@ -2563,13 +2565,16 @@
_builder_10.append("internal.set");
String _capitalize = WordUtils.capitalize(((EntityMockAttributeByReference)attribute_1).getAttributeRef().getName());
_builder_10.append(_capitalize, "\t");
- _builder_10.append("((");
- String _dtoFQNForLEntity = EntityUtils.getDtoFQNForLEntity(((EntityMockAttributeByReference)attribute_1).getAttributeRef().getType());
- _builder_10.append(_dtoFQNForLEntity, "\t");
- _builder_10.append(")getMockData().get(\"");
+ _builder_10.append("(");
+ LEntityReference _attributeRef = ((EntityMockAttributeByReference)attribute_1).getAttributeRef();
+ StringConcatenation _builder_11 = new StringConcatenation();
+ _builder_11.append("getMockData().get(\"");
String _name_4 = ((EntityMockAttributeByReference)attribute_1).getAttributeRef().getName();
- _builder_10.append(_name_4, "\t");
- _builder_10.append("\"));");
+ _builder_11.append(_name_4);
+ _builder_11.append("\")");
+ String _baseMockDataTypeCasting = this.baseMockDataTypeCasting(_attributeRef, _builder_11.toString());
+ _builder_10.append(_baseMockDataTypeCasting, "\t");
+ _builder_10.append(");");
_builder_10.newLineIfNotEmpty();
it_2.append(_builder_10);
}
@@ -2722,6 +2727,28 @@
/**
* generate the code for casting a mock data to the data type of the entity attribute
*/
+ public String baseMockDataTypeCasting(final LEntityReference entityRef, final String getting) {
+ String text = EntityUtils.getDtoFQNForLEntity(entityRef.getType());
+ LMultiplicity _multiplicity = entityRef.getMultiplicity();
+ boolean _tripleNotEquals = (_multiplicity != null);
+ if (_tripleNotEquals) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("List<");
+ _builder.append(text);
+ _builder.append(">");
+ text = _builder.toString();
+ }
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("(");
+ _builder_1.append(text);
+ _builder_1.append(")");
+ _builder_1.append(getting);
+ return _builder_1.toString();
+ }
+
+ /**
+ * generate the code for casting a mock data to the data type of the entity attribute
+ */
public String baseMockDataTypeCasting(final LEntityAttribute attribute, final String getting) {
LScalarType _type = attribute.getType();
if ((_type instanceof LEnum)) {
@@ -2746,76 +2773,88 @@
_builder_1.append(")");
return _builder_1.toString();
}
+ LScalarType _type_4 = attribute.getType();
+ if ((_type_4 instanceof LBean)) {
+ StringConcatenation _builder_2 = new StringConcatenation();
+ _builder_2.append("(");
+ LScalarType _type_5 = attribute.getType();
+ String _dtoFQNForLBean_1 = EntityUtils.getDtoFQNForLBean(((LBean) _type_5));
+ _builder_2.append(_dtoFQNForLBean_1);
+ _builder_2.append(")(");
+ _builder_2.append(getting);
+ _builder_2.append(")");
+ return _builder_2.toString();
+ }
IDataMart.EType etype = this.dtType.getBasicType(attribute);
if (etype != null) {
switch (etype) {
case BOOLEAN:
- StringConcatenation _builder_2 = new StringConcatenation();
- _builder_2.append("asBoolean(");
- _builder_2.append(getting);
- _builder_2.append(")");
- return _builder_2.toString();
- case BYTE:
StringConcatenation _builder_3 = new StringConcatenation();
- _builder_3.append("asByte(");
+ _builder_3.append("asBoolean(");
_builder_3.append(getting);
_builder_3.append(")");
return _builder_3.toString();
- case DATE:
+ case BYTE:
StringConcatenation _builder_4 = new StringConcatenation();
- _builder_4.append("asDate(");
+ _builder_4.append("asByte(");
_builder_4.append(getting);
_builder_4.append(")");
return _builder_4.toString();
- case FLOAT:
+ case DATE:
StringConcatenation _builder_5 = new StringConcatenation();
- _builder_5.append("asFloat(");
+ _builder_5.append("asDate(");
_builder_5.append(getting);
_builder_5.append(")");
return _builder_5.toString();
- case DOUBLE:
+ case FLOAT:
StringConcatenation _builder_6 = new StringConcatenation();
- _builder_6.append("asDouble(");
+ _builder_6.append("asFloat(");
_builder_6.append(getting);
_builder_6.append(")");
return _builder_6.toString();
- case SHORT:
+ case DOUBLE:
StringConcatenation _builder_7 = new StringConcatenation();
- _builder_7.append("asShort(");
+ _builder_7.append("asDouble(");
_builder_7.append(getting);
_builder_7.append(")");
return _builder_7.toString();
- case INTEGER:
+ case SHORT:
StringConcatenation _builder_8 = new StringConcatenation();
- _builder_8.append("asInt(");
+ _builder_8.append("asShort(");
_builder_8.append(getting);
_builder_8.append(")");
return _builder_8.toString();
- case LONG:
+ case INTEGER:
StringConcatenation _builder_9 = new StringConcatenation();
- _builder_9.append("asLong(");
+ _builder_9.append("asInt(");
_builder_9.append(getting);
_builder_9.append(")");
return _builder_9.toString();
- case TIME:
+ case LONG:
StringConcatenation _builder_10 = new StringConcatenation();
- _builder_10.append("asTime(");
+ _builder_10.append("asLong(");
_builder_10.append(getting);
_builder_10.append(")");
return _builder_10.toString();
- default:
+ case TIME:
StringConcatenation _builder_11 = new StringConcatenation();
- _builder_11.append("asString(");
+ _builder_11.append("asTime(");
_builder_11.append(getting);
_builder_11.append(")");
return _builder_11.toString();
+ default:
+ StringConcatenation _builder_12 = new StringConcatenation();
+ _builder_12.append("asString(");
+ _builder_12.append(getting);
+ _builder_12.append(")");
+ return _builder_12.toString();
}
} else {
- StringConcatenation _builder_11 = new StringConcatenation();
- _builder_11.append("asString(");
- _builder_11.append(getting);
- _builder_11.append(")");
- return _builder_11.toString();
+ StringConcatenation _builder_12 = new StringConcatenation();
+ _builder_12.append("asString(");
+ _builder_12.append(getting);
+ _builder_12.append(")");
+ return _builder_12.toString();
}
}
@@ -3346,36 +3385,28 @@
_builder.append(_entityMockName_3);
_builder.append("\", 0, 0.6);");
_builder.newLineIfNotEmpty();
- _builder.append("persistenceService.registerPersistenceUnit(entity");
+ _builder.append("while (iterator");
String _name_2 = mockEntity.getName();
_builder.append(_name_2);
- _builder.append(".getPersistenceUnit(), ");
- String _entityFQN = this.entityFQN(mockEntity);
- _builder.append(_entityFQN);
- _builder.append(".class);");
- _builder.newLineIfNotEmpty();
- _builder.append("while (iterator");
- String _name_3 = mockEntity.getName();
- _builder.append(_name_3);
_builder.append(".hasNext()) {");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("list");
+ String _name_3 = mockEntity.getName();
+ _builder.append(_name_3, " ");
+ _builder.append(".add(entity");
String _name_4 = mockEntity.getName();
_builder.append(_name_4, " ");
- _builder.append(".add(entity");
+ _builder.append(".generateEntity(iterator");
String _name_5 = mockEntity.getName();
_builder.append(_name_5, " ");
- _builder.append(".generateEntity(iterator");
- String _name_6 = mockEntity.getName();
- _builder.append(_name_6, " ");
_builder.append(".next()));");
_builder.newLineIfNotEmpty();
_builder.append("}");
_builder.newLine();
_builder.append("addMockObjects(\"");
- String _name_7 = mockEntity.getName();
- _builder.append(_name_7);
+ String _name_6 = mockEntity.getName();
+ _builder.append(_name_6);
_builder.append("\", ");
String _entityDtoFQNClass = this.entityDtoFQNClass(mockEntity);
_builder.append(_entityDtoFQNClass);
@@ -3383,8 +3414,8 @@
String _persistenceUnit = mockEntity.getEntityRef().getPersistenceUnit();
_builder.append(_persistenceUnit);
_builder.append("\", list");
- String _name_8 = mockEntity.getName();
- _builder.append(_name_8);
+ String _name_7 = mockEntity.getName();
+ _builder.append(_name_7);
_builder.append(");");
_builder.newLineIfNotEmpty();
_builder.append("entityMockDbFiller.notifyInitializationStep(\"generate ");