Fixed feature proxy in migration.
Change-Id: I7e9466e01160ccf18262770d2a2a16700bbc8a83
diff --git a/plugins/org.eclipse.acceleo.aql.migration/src/org/eclipse/acceleo/aql/migration/converters/ExpressionConverter.java b/plugins/org.eclipse.acceleo.aql.migration/src/org/eclipse/acceleo/aql/migration/converters/ExpressionConverter.java
index 5989314..355a74e 100644
--- a/plugins/org.eclipse.acceleo.aql.migration/src/org/eclipse/acceleo/aql/migration/converters/ExpressionConverter.java
+++ b/plugins/org.eclipse.acceleo.aql.migration/src/org/eclipse/acceleo/aql/migration/converters/ExpressionConverter.java
@@ -37,10 +37,12 @@
import org.eclipse.acceleo.query.ast.VarRef;
import org.eclipse.acceleo.query.ast.VariableDeclaration;
import org.eclipse.acceleo.query.parser.AstBuilderListener;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.impl.EStructuralFeatureImpl;
import org.eclipse.ocl.ecore.BooleanLiteralExp;
import org.eclipse.ocl.ecore.CollectionItem;
import org.eclipse.ocl.ecore.CollectionLiteralExp;
@@ -233,7 +235,13 @@
}
output.getArguments().add((Expression)convert(input.getSource()));
StringLiteral propertyName = AstFactory.eINSTANCE.createStringLiteral();
- propertyName.setValue(input.getReferredProperty().getName());
+ if (!input.getReferredProperty().eIsProxy()) {
+ propertyName.setValue(input.getReferredProperty().getName());
+ } else {
+ final URI proxyURI = ((EStructuralFeatureImpl)input.getReferredProperty()).eProxyURI();
+ final String[] segments = proxyURI.fragment().split("/");
+ propertyName.setValue(segments[segments.length - 1]);
+ }
output.getArguments().add(propertyName);
return output;
}