package org.xpect.ui.services;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.resource.EObjectAtOffsetHelper;
import org.xpect.XjmMethod;
import org.xpect.XjmTest;
import org.xpect.XpectJavaModel;
public class XpectEObjectAtOffsetHelper extends EObjectAtOffsetHelper {
@Override
public EObject getCrossReferencedElement(INode node) {
EObject element = super.getCrossReferencedElement(node);
if (!element.eIsProxy()) {
if (element instanceof XjmMethod)
return ((XjmMethod) element).getJvmMethod();
if (element instanceof XpectJavaModel) {
XjmTest testOrSuite = ((XpectJavaModel) element).getTestOrSuite();
if (testOrSuite != null && !testOrSuite.eIsProxy())
return testOrSuite.getJvmClass();
}
}
return element;
}
}