Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.xtend21
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

Back to the top