diff options
Diffstat (limited to 'org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend')
-rw-r--r-- | org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend index 28f1198..af569a5 100644 --- a/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend +++ b/org.eclipse.osbp.xtext.datainterchange/src/org/eclipse/osbp/xtext/datainterchange/scoping/DataDSLScopeProvider.xtend @@ -97,8 +97,10 @@ class DataDSLScopeProvider extends AbstractDataDSLScopeProvider { return getScope_Data_Expose_entity(context, reference) } else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_EXPOSE__REF_PROPERTY) { return getScope_Data_Expose_queryProperty(context, reference) - } else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_MAPPING__PROPERTY) { + } else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_PROPERTY_MAPPING__PROPERTY) { return getScope_Data_Target_property(context, reference, true) + } else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_LOOKUP_MAPPING__LOOKUP_REFERENCE) { + return getScope_Data_Lookup_Mapping_Reference(context, reference) } else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_ENTITY) { return getScope_Data_Markerpath_entity(context, reference) } else if (reference == DataDSLPackage.Literals.DATA_INTERCHANGE_MARKER_ENTITY__MARKER_PROPERTY) { @@ -113,6 +115,17 @@ class DataDSLScopeProvider extends AbstractDataDSLScopeProvider { super.getScope(context, reference) } } + + def getScope_Data_Lookup_Mapping_Reference(EObject context, EReference reference) { + var result = <IEObjectDescription>newArrayList + var eObj = context.eContainer + if (eObj instanceof DataInterchangeBean) { + for(lookup:(eObj as DataInterchangeBean).lookup) { + result.add(EObjectDescription.create((lookup.targetProperty as LFeature).name, (lookup.targetProperty as LFeature))) + } + } + return MapBasedScope.createScope(IScope.NULLSCOPE, result) + } def getScope_Data_Bean_Entity_ReferenceAttribut(EObject context, EReference reference) { var result = <IEObjectDescription>newArrayList @@ -194,7 +207,7 @@ class DataDSLScopeProvider extends AbstractDataDSLScopeProvider { if (eObj !== null && eObj instanceof DataInterchangeBean) { var bean = eObj as DataInterchangeBean var entity = bean.entity - entity.normalFeatures.forEach[result.add(EObjectDescription.create(it.name, it))] + entity.allFeatures.forEach[result.add(EObjectDescription.create(it.name, it))] for (lookup : bean.lookup) { var queryProp = lookup.queryProperty if (queryProp !== null && queryProp.name !== null) { @@ -388,7 +401,7 @@ class DataDSLScopeProvider extends AbstractDataDSLScopeProvider { if ((eObj as DataInterchangeBean).lookup !== null) { for (lookup : (eObj as DataInterchangeBean).lookup) { var entity = lookup.entity - for (prop : entity.normalFeatures) { + for (prop : entity.allFeatures) { if (prop instanceof LEntityAttribute) { result.add(EObjectDescription.create((prop as LEntityFeature).name, (prop as LAttribute))) } @@ -412,7 +425,7 @@ class DataDSLScopeProvider extends AbstractDataDSLScopeProvider { if (eObj instanceof DataInterchange) { mode = eObj.mode } - for (prop : entity.normalFeatures) { + for (prop : entity.allFeatures) { if (prop instanceof LEntityAttribute && (marker === null || !prop.toName.equals(marker.toName))) { if (mode.equals(EntityManagerMode.PERSIST) && prop.isUUID || (prop as LEntityAttribute).isId) { // do nothing |