public IResourceDescription getResourceDescription(URI uri) { IResourceDescription result = delegate.getResourceDescription(uri); if (result == null) { Resource resource = EcoreUtil2.getResource(context, uri.toString()); if (resource != null) { IResourceServiceProvider serviceProvider = serviceProviderRegistry.getResourceServiceProvider(uri); if (serviceProvider==null) throw new IllegalStateException("No "+IResourceServiceProvider.class.getSimpleName()+" found in registry for uri "+uri); final Manager resourceDescriptionManager = serviceProvider.getResourceDescriptionManager(); if (resourceDescriptionManager == null) throw new IllegalStateException("No "+IResourceDescription.Manager.class.getName()+" provided by service provider for URI "+uri); result = resourceDescriptionManager.getResourceDescription(resource); } } return result; }
protected File createStubs(ResourceSet resourceSet) { File outputDirectory = createTempDir("stubs"); JavaIoFileSystemAccess fileSystemAccess = javaIoFileSystemAccessProvider.get(); fileSystemAccess.setOutputPath(outputDirectory.toString()); List<Resource> resources = Lists.newArrayList(resourceSet.getResources()); for (Resource resource : resources) { IResourceDescription description = resourceDescriptionManager.getResourceDescription(resource); stubGenerator.doGenerateStubs(fileSystemAccess, description); } return outputDirectory; }
@Override public Iterable<IEObjectDescription> getEObjectDescriptions(Resource resource) { Multimap<EObject, IEObjectDescription> map = HashMultimap.create(); IResourceDescription description = resourceDescriptionManager.getResourceDescription(resource); for (IEObjectDescription desc : description.getExportedObjects()) { EObject object = EcoreUtil.resolve(desc.getEObjectOrProxy(), resource); map.put(object, desc); } if (!resource.getContents().isEmpty()) { TreeIterator<EObject> it = EcoreUtil2.eAll(resource.getContents().get(0)); while (it.hasNext()) { EObject next = it.next(); if (map.containsKey(next)) { continue; } QualifiedName name = qualifiedNameProvider.getFullyQualifiedName(next); if (name != null) { IEObjectDescription desc = EObjectDescription.create(name, next); map.put(next, desc); } } } List<IEObjectDescription> result = Lists.newArrayList(); for (Map.Entry<EObject, IEObjectDescription> entry : map.entries()) { QualifiedName name = computeSimpleName(map, entry.getValue()); SimpleNameDescription copy = new SimpleNameDescription(name, entry.getKey(), entry.getValue()); result.add(copy); } return result; }
final IResourceDescription description = manager.getResourceDescription(resource); final IResourceDescription copiedDescription = BuilderStateUtil.create(description); newDelta = manager.createDelta(this.getResourceDescription(actualResourceURI), copiedDescription);
final IResourceDescription description = manager.getResourceDescription(resource); final IResourceDescription copiedDescription = new CopiedResourceDescription(description);
protected IScope createLazyResourceScope(Resource resource, IScope parent, final URI uri, final IResourceDescriptions descriptions, EClass type, final Predicate<IEObjectDescription> filter, boolean ignoreCase) { IResourceDescription description = null; try { description = descriptions.getResourceDescription(uri); } catch (IllegalStateException ex) { Resource res = EcoreUtil2.getResource(resource, uri.toString()); if (res != null) { // fallback for ZEN resource description in case of shorten url IResourceServiceProvider serviceProvider = serviceProviderRegistry.getResourceServiceProvider(uri, ZEN_CONTENT_TYPE); if (serviceProvider != null) { Manager descriptionManager = serviceProvider.getResourceDescriptionManager(); if (descriptionManager != null) { description = descriptionManager.getResourceDescription(res); } } } if (description == null) { throw ex; } } return SelectableBasedScope.createScope(parent, description, filter, type, ignoreCase); }
/** Create the stubs. * * @param resourceSet the input resource set. * @param progress monitor of the progress of the compilation. * @return the folder in which the stubs are located. Replies <code>null</code> if the activity is canceled. */ protected File createStubs(ResourceSet resourceSet, IProgressMonitor progress) { assert progress != null; progress.subTask(Messages.SarlBatchCompiler_53); final File outputDirectory = createTempDir(STUB_FOLDER_PREFIX); if (progress.isCanceled()) { return null; } getLogger().debug(Messages.SarlBatchCompiler_19, outputDirectory); final JavaIoFileSystemAccess fileSystemAccess = this.javaIoFileSystemAccessProvider.get(); if (progress.isCanceled()) { return null; } fileSystemAccess.setOutputPath(outputDirectory.toString()); final List<Resource> resources = new ArrayList<>(resourceSet.getResources()); for (final Resource resource : resources) { if (progress.isCanceled()) { return null; } getLogger().debug(Messages.SarlBatchCompiler_20, resource.getURI()); final IResourceDescription description = this.resourceDescriptionManager.getResourceDescription(resource); this.stubGenerator.doGenerateStubs(fileSystemAccess, description); } return outputDirectory; }
protected List<IContainer> getVisibleContainers(Resource resource) { IResourceDescription description = descriptionManager.getResourceDescription(resource); IResourceDescriptions resourceDescriptions = getResourceDescriptions(resource); String cacheKey = getCacheKey("VisibleContainers", resource.getResourceSet()); OnChangeEvictingCache.CacheAdapter cache = new OnChangeEvictingCache().getOrCreate(resource); List<IContainer> result = null; result = cache.get(cacheKey); if (result == null) { result = containerManager.getVisibleContainers(description, resourceDescriptions); // SZ: I'ld like this dependency to be moved to the implementation of the // container manager, but it is not aware of a CacheAdapter if (resourceDescriptions instanceof IResourceDescription.Event.Source) { IResourceDescription.Event.Source eventSource = (Source) resourceDescriptions; DelegatingEventSource delegatingEventSource = new DelegatingEventSource(eventSource); delegatingEventSource.addListeners(Lists.newArrayList(Iterables.filter(result, IResourceDescription.Event.Listener.class))); delegatingEventSource.initialize(); cache.addCacheListener(delegatingEventSource); } cache.set(cacheKey, result); } return result; }
protected Map<EObject, URI> createExportedElementsMap(Resource resource) { URI uri = EcoreUtil2.getPlatformResourceOrNormalizedURI(resource); IResourceServiceProvider resourceServiceProvider = serviceProviderRegistry.getResourceServiceProvider(uri); if (resourceServiceProvider == null) { return Collections.emptyMap(); } IResourceDescription.Manager resourceDescriptionManager = resourceServiceProvider.getResourceDescriptionManager(); if (resourceDescriptionManager == null) { return Collections.emptyMap(); } IResourceDescription resourceDescription = resourceDescriptionManager.getResourceDescription(resource); Map<EObject, URI> exportedElementMap = newIdentityHashMap(); if (resourceDescription != null) { for (IEObjectDescription exportedEObjectDescription : resourceDescription.getExportedObjects()) { EObject eObject = resource.getEObject(exportedEObjectDescription.getEObjectURI().fragment()); if (eObject != null) exportedElementMap.put(eObject, exportedEObjectDescription.getEObjectURI()); } } return exportedElementMap; }
protected boolean isReparseRequired(XtextResource resource, IResourceDescription.Event event) { IResourceDescription.Manager resourceDescriptionManager = resource.getResourceServiceProvider().getResourceDescriptionManager(); IResourceDescription description = resourceDescriptionManager.getResourceDescription(resource); if (resourceDescriptionManager.isAffected(event.getDeltas(), description, resourceDescriptions)) { return true; } if (!isDirty() && !dirtyStateManager.hasContent(resource.getURI())) { IResourceDescription originalDescription = resourceDescriptions.getResourceDescription(resource.getURI()); if (originalDescription != null && descriptionUtils != null) { Set<URI> outgoingReferences = descriptionUtils.collectOutgoingReferences(originalDescription); for(IResourceDescription.Delta delta: event.getDeltas()) { if (delta.haveEObjectDescriptionsChanged() && outgoingReferences.contains(delta.getUri())) return true; } } } return false; }
public void modelChanged(XtextResource resource) { if (resource == null || !dirtyResource.isInitialized()) return; if (isDirty || ((!resource.isTrackingModification() || resource.isModified()) && currentClient.isDirty() && dirtyStateManager.manageDirtyState(delegatingClientAwareResource))) { synchronized (dirtyStateManager) { IResourceDescription.Manager resourceDescriptionManager = resource.getResourceServiceProvider().getResourceDescriptionManager(); final IResourceDescription newDescription = resourceDescriptionManager.getResourceDescription(resource); if (haveEObjectDescriptionsChanged(newDescription, resourceDescriptionManager)) { dirtyResource.copyState(newDescription); dirtyStateManager.announceDirtyStateChanged(delegatingClientAwareResource); } } } }
@Override public IResourceDescription getDescription() { return xtextResource.getResourceServiceProvider().getResourceDescriptionManager().getResourceDescription(xtextResource); }
public void fillIndex(final URI uri, final Resource resource, final ResourceDescriptionsData index) { final IResourceDescription description = this.languageAccess(uri).getResourceDescriptionManager().getResourceDescription(resource); index.addDescription(uri, description); }
public void doCheckUniqueNames(Resource resource, CancelIndicator cancelIndicator) { final IResourceServiceProvider resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(resource.getURI()); if (resourceServiceProvider==null) return; IResourceDescription.Manager manager = resourceServiceProvider.getResourceDescriptionManager(); if (manager != null) { IResourceDescription description = manager.getResourceDescription(resource); if (description != null) { Iterable<IEObjectDescription> descriptions = description.getExportedObjects(); helper.checkUniqueNames(descriptions, cancelIndicator, this); } } }
protected void doIndex() { if (index == null) { // indexing List<IResourceDescription> descriptions = newArrayList(); for (Resource resource : sources) { IResourceServiceProvider serviceProvider = serviceRegistry.getResourceServiceProvider(resource.getURI()); IResourceDescription description = serviceProvider.getResourceDescriptionManager().getResourceDescription(resource); descriptions.add(description); } index = new ResourceDescriptionsData(descriptions); ResourceDescriptionsData.ResourceSetAdapter.installResourceDescriptionsData(resourceSet, index); } }
public IResourceDescription getResourceDescription(Resource resource) { IResourceServiceProvider resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(resource.getURI()); if (resourceServiceProvider == null) return null; IResourceDescription.Manager manager = resourceServiceProvider.getResourceDescriptionManager(); if (manager == null) return null; IResourceDescription description = manager.getResourceDescription(resource); return description; }
protected void initiallyProcessResource(XtextResource resource) { IResourceServiceProvider serviceProvider = resource.getResourceServiceProvider(); if (serviceProvider != null) { IResourceDescription.Manager descriptionManager = serviceProvider.getResourceDescriptionManager(); if (descriptionManager != null) { final IResourceDescription description = descriptionManager.getResourceDescription(resource); if (description != null) copyState(description); } } }
private IResourceDescription computeResourceDescription(URI uri) { Resource resource = resourceSet.getResource(uri, false); if (resource == null) return null; IResourceServiceProvider resourceServiceProvider = registry.getResourceServiceProvider(uri); if (resourceServiceProvider == null) return null; Manager manager = resourceServiceProvider.getResourceDescriptionManager(); if (manager == null) return null; return manager.getResourceDescription(resource); }
private void index(final Resource resource, final URI uri, final ResourceDescriptionsData index) { final IResourceServiceProvider serviceProvider = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(uri); if ((serviceProvider != null)) { final IResourceDescription resourceDescription = serviceProvider.getResourceDescriptionManager().getResourceDescription(resource); if ((resourceDescription != null)) { index.addDescription(uri, resourceDescription); } } }
public IResourceDescription getResourceDescription(URI uri) { Resource resource = resourceSet.getResource(uri, false); if (resource == null) return null; IResourceServiceProvider resourceServiceProvider = registry.getResourceServiceProvider(uri); if (resourceServiceProvider == null) return null; Manager manager = resourceServiceProvider.getResourceDescriptionManager(); if (manager==null) return null; return manager.getResourceDescription(resource); }