package org.erlide.erlang;
import com.google.inject.Inject;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.resource.IResourceDescription;
import org.eclipse.xtext.resource.IResourceServiceProvider;
import org.erlide.erlang.ErlangPackage;
import org.erlide.erlang.Module;
@SuppressWarnings("all")
public class ScopeExtensions {
@Inject
private IResourceServiceProvider.Registry resourceProviderRegistry;
public IResourceDescription.Manager getIndexProvider(final Resource res) {
URI _uRI = res.getURI();
IResourceServiceProvider _resourceServiceProvider = this.resourceProviderRegistry.getResourceServiceProvider(_uRI);
return _resourceServiceProvider.getResourceDescriptionManager();
}
public IResourceDescription getDescription(final Module module) {
IResourceDescription _xblockexpression = null;
{
final Resource res = module.eResource();
IResourceDescription.Manager _indexProvider = this.getIndexProvider(res);
_xblockexpression = _indexProvider.getResourceDescription(res);
}
return _xblockexpression;
}
public Iterable<IEObjectDescription> getExportedDescriptions(final Module module) {
IResourceDescription _description = this.getDescription(module);
return _description.getExportedObjects();
}
public Iterable<IEObjectDescription> getExportedFunctions(final Module module) {
IResourceDescription _description = this.getDescription(module);
return _description.getExportedObjectsByType(ErlangPackage.Literals.FUNCTION);
}
public Iterable<IEObjectDescription> getExportedMacros(final Module module) {
IResourceDescription _description = this.getDescription(module);
return _description.getExportedObjectsByType(ErlangPackage.Literals.DEFINE_ATTRIBUTE);
}
public Iterable<IEObjectDescription> getExportedRecords(final Module module) {
IResourceDescription _description = this.getDescription(module);
return _description.getExportedObjectsByType(ErlangPackage.Literals.RECORD_ATTRIBUTE);
}
}