package org.erlide.scoping;
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.resource.impl.DefaultResourceDescriptionStrategy;
import org.eclipse.xtext.util.IAcceptor;
import org.erlide.erlang.ModelExtensions;
import org.erlide.erlang.Module;
import com.google.inject.Inject;
public class ErlangResourceDescriptionStrategy extends
DefaultResourceDescriptionStrategy {
@Inject
private ModelExtensions modelExtensions;
@Override
public boolean createEObjectDescriptions(final EObject eObject,
final IAcceptor<IEObjectDescription> acceptor) {
if (getQualifiedNameProvider() == null) {
return false;
}
// System.out.println("??? " + eObject);
try {
if (eObject instanceof Module) {
final QualifiedName qualifiedName = getQualifiedNameProvider()
.getFullyQualifiedName(eObject);
if (qualifiedName == null) {
System.out.println("ERR> null qname for " + eObject);
} else {
// System.out.println("=== " + qualifiedName);
acceptor.accept(EObjectDescription.create(qualifiedName,
eObject));
}
}
} catch (final Exception exc) {
exc.printStackTrace();
}
return true;
}
}