package org.xpect.scoping;
import java.util.Collections;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.common.types.JvmType;
import org.eclipse.xtext.common.types.access.IJvmTypeProvider;
import org.eclipse.xtext.naming.QualifiedName;
import org.eclipse.xtext.resource.EObjectDescription;
import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.scoping.IScope;
@SuppressWarnings("restriction")
public class SimpleTypeScope implements IScope {
private IJvmTypeProvider typeProvider;
public SimpleTypeScope(IJvmTypeProvider typeProvider) {
super();
this.typeProvider = typeProvider;
}
public Iterable<IEObjectDescription> getAllElements() {
return Collections.emptyList();
}
public Iterable<IEObjectDescription> getElements(EObject object) {
return Collections.emptyList();
}
public Iterable<IEObjectDescription> getElements(QualifiedName name) {
return Collections.singletonList(getSingleElement(name));
}
public IEObjectDescription getSingleElement(EObject object) {
return EObjectDescription.create(QualifiedName.create(object.eResource().getURI().segments()), object);
}
public IEObjectDescription getSingleElement(QualifiedName name) {
JvmType eObject = typeProvider.findTypeByName(name.toString());
if (eObject != null) {
return EObjectDescription.create(name, eObject);
}
return null;
}
}