package st.redline.scoping; import java.util.ArrayList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.resource.EObjectDescription; import org.eclipse.xtext.resource.IEObjectDescription; import org.eclipse.xtext.scoping.impl.AbstractScope; import st.redline.smalltalk.impl.TemporaryImpl; public class MethodScope extends AbstractScope { private final EObject context; public MethodScope(EObject context) { super(NULLSCOPE, false); this.context = context; } @Override protected Iterable<IEObjectDescription> getAllLocalElements() { ArrayList<IEObjectDescription> objects = new ArrayList<IEObjectDescription>(); EList<EObject> elist = context.eContents(); for(EObject eobj : elist) { if(eobj instanceof TemporaryImpl) { String name = ((TemporaryImpl) eobj).getName(); QualifiedName qname = QualifiedName.create(name.split("\\.")); objects.add(EObjectDescription.create(qname, eobj)); } } return objects; } }