	public AllModuleReferences getAllModulesState() {
		final AllModuleReferences result = new AllModuleReferences();
		if(resourceSet == null || resourceSet.getResources().size() < 1)
			return result;
		final ValidationStateBasedContainerManager validationContainerManager = getContainerManager();
		IResourceDescriptions descriptionIndex = getResourceDescriptions();
		Map<IEObjectDescription, ModuleExport> exports = Maps.newHashMap();
		for(IResourceDescription rdesc : descriptionIndex.getAllResourceDescriptions()) {
			String handle = validationContainerManager.getContainerHandle(rdesc, descriptionIndex);
			if(handle == null)
				continue;
			File moduleDir = new File(handle);
			for(IEObjectDescription desc : rdesc.getExportedObjects()) {
				ModuleExport me = createExport(desc);
				exports.put(desc, me);
				result.addExport(moduleDir, me);
			}
		}
		for(Resource r : resourceSet.getResources()) {
			File importingModuleDir = getContainerHandle(r.getURI(), descriptionIndex, validationContainerManager);
			if(importingModuleDir == null)
				continue;
			PPImportedNamesAdapter importedAdapter = PPImportedNamesAdapterFactory.eINSTANCE.adapt(r);
			for(IEObjectDescription desc : importedAdapter.getResolvedDescriptions()) {
				File moduleDir = getContainerHandle(desc.getEObjectURI(), descriptionIndex, validationContainerManager);
				if(moduleDir != null)
					continue;
				ModuleExport me = exports.get(desc);
				if(me == null)
					me = searchMissing(importingModuleDir, moduleDir, exports, desc);
				result.addImport(importingModuleDir, moduleDir, me);
			}
			for(IEObjectDescription desc : importedAdapter.getAmbiguousDescriptions()) {
				File moduleDir = getContainerHandle(desc.getEObjectURI(), descriptionIndex, validationContainerManager);
				if(moduleDir == null)
					continue;
				ModuleExport me = exports.get(desc);
				if(me == null)
					me = searchMissing(importingModuleDir, moduleDir, exports, desc);
				result.addAmbiguity(importingModuleDir, moduleDir, me);
			}
			result.addUnresolved(importingModuleDir, r.getURI(), importedAdapter.getUnresolved(), fQualifiedToString);
		}
		result.setRestricted(restricted);
		return result;
	}

	public AllModuleReferences getAllModulesState() {
		final AllModuleReferences result = new AllModuleReferences();
		if(resourceSet == null || resourceSet.getResources().size() < 1)
			return result;
		final ValidationStateBasedContainerManager validationContainerManager = getContainerManager();
		IResourceDescriptions descriptionIndex = getResourceDescriptions();
		Map<IEObjectDescription, ModuleExport> exports = Maps.newHashMap();
		for(IResourceDescription rdesc : descriptionIndex.getAllResourceDescriptions()) {
			String handle = validationContainerManager.getContainerHandle(rdesc, descriptionIndex);
			if(handle == null)
				continue;
			File moduleDir = new File(handle);
			for(IEObjectDescription desc : rdesc.getExportedObjects()) {
				ModuleExport me = createExport(desc);
				exports.put(desc, me);
				result.addExport(moduleDir, me);
			}
		}
		for(Resource r : resourceSet.getResources()) {
			File importingModuleDir = getContainerHandle(r.getURI(), descriptionIndex, validationContainerManager);
			if(importingModuleDir == null)
				continue;
			PPImportedNamesAdapter importedAdapter = PPImportedNamesAdapterFactory.eINSTANCE.adapt(r);
			for(IEObjectDescription desc : importedAdapter.getResolvedDescriptions()) {
				File moduleDir = getContainerHandle(desc.getEObjectURI(), descriptionIndex, validationContainerManager);
				if(moduleDir == null)
					continue;
				ModuleExport me = exports.get(desc);
				if(me == null)
					me = searchMissing(importingModuleDir, moduleDir, exports, desc);
				result.addImport(importingModuleDir, moduleDir, me);
			}
			for(IEObjectDescription desc : importedAdapter.getAmbiguousDescriptions()) {
				File moduleDir = getContainerHandle(desc.getEObjectURI(), descriptionIndex, validationContainerManager);
				if(moduleDir == null)
					continue;
				ModuleExport me = exports.get(desc);
				if(me == null)
					me = searchMissing(importingModuleDir, moduleDir, exports, desc);
				result.addAmbiguity(importingModuleDir, moduleDir, me);
			}
			result.addUnresolved(importingModuleDir, r.getURI(), importedAdapter.getUnresolved(), fQualifiedToString);
		}
		result.setRestricted(restricted);
		return result;
	}
