if ((uri.isPlatform() || uri.isArchive()) && delta.getNew() != null) { if (containers == null) containers = containerManager.getVisibleContainers(candidate, context); boolean descriptionIsContained = false; for(int i = 0; i < containers.size() && !descriptionIsContained; i++) {
IResourceDescription otherResourceDescription = resourceDescriptions .getResourceDescription(otherResourceUri); List<IContainer> visible = containerManager.getVisibleContainers(resourceDescription, resourceDescriptions); List<IContainer> visibleFromOther = containerManager.getVisibleContainers(otherResourceDescription, resourceDescriptions); if (Iterables.any(visible, contains(otherResourceDescription))
@Check public void checkPatterns(PatternModel model) { resourceDescriptions.setContext(model); if (model.getPatterns() != null) { // TODO: more precise calculation is needed for duplicate patterns // (number and type of pattern parameters) for (Pattern pattern : model.getPatterns()) { QualifiedName fullyQualifiedName = nameProvider.getFullyQualifiedName(pattern); final Iterable<IEObjectDescription> shadowingPatternDescriptions = resourceDescriptions.getExportedObjects(PatternLanguagePackage.Literals.PATTERN, fullyQualifiedName, true); for (IEObjectDescription shadowingPatternDescription : shadowingPatternDescriptions) { EObject shadowingPattern = shadowingPatternDescription.getEObjectOrProxy(); if (shadowingPattern != pattern) { URI resourceUri = pattern.eResource().getURI(); URI otherResourceUri = shadowingPatternDescription.getEObjectURI().trimFragment(); // not using shadowingPattern because it might be proxy IResourceDescription resourceDescription = resourceDescriptions.getResourceDescription(resourceUri); IResourceDescription otherResourceDescription = resourceDescriptions.getResourceDescription(otherResourceUri); List<IContainer> visible = containerManager.getVisibleContainers(resourceDescription, resourceDescriptions); List<IContainer> visibleFromOther = containerManager.getVisibleContainers(otherResourceDescription, resourceDescriptions); if (Iterables.any(visible, contains(otherResourceDescription)) || Iterables.any(visibleFromOther, contains(resourceDescription))) { String otherResourcePath = Objects.firstNonNull(otherResourceUri.toPlatformString(true), otherResourceUri.toFileString()); error(String.format(DUPLICATE_PATTERN_DEFINITION_MESSAGE, fullyQualifiedName, otherResourcePath), pattern, PatternLanguagePackage.Literals.PATTERN__NAME, IssueCodes.DUPLICATE_PATTERN_DEFINITION); } } } } } }
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; }
private Set<org.fuin.dsl.ddd.domainDrivenDesignDsl.Exception> getAllExceptions(final EObject obj) { final Set<org.fuin.dsl.ddd.domainDrivenDesignDsl.Exception> list = new HashSet<org.fuin.dsl.ddd.domainDrivenDesignDsl.Exception>(); final Resource resource = obj.eResource(); final IResourceDescriptions resourceDescriptions = this.resourceDescriptionsProvider.getResourceDescriptions(resource); final IResourceDescription resourceDescription = resourceDescriptions.getResourceDescription(resource.getURI()); final List<IContainer> containers = this.containerManager.getVisibleContainers(resourceDescription, resourceDescriptions); for (final IContainer container : containers) { Iterable<IEObjectDescription> _exportedObjects = container.getExportedObjects(); for (final IEObjectDescription descr : _exportedObjects) { { final EObject eObjectOrProxy = descr.getEObjectOrProxy(); if ((eObjectOrProxy instanceof org.fuin.dsl.ddd.domainDrivenDesignDsl.Exception)) { EObject _resolve = EcoreUtil.resolve(eObjectOrProxy, obj); final org.fuin.dsl.ddd.domainDrivenDesignDsl.Exception ex = ((org.fuin.dsl.ddd.domainDrivenDesignDsl.Exception) _resolve); list.add(ex); } } } } return list; }
private List<IContainer> getVisibleContainers(final EObject o) { List<IContainer> _xblockexpression = null; { final IResourceDescriptions index = this.rdp.getResourceDescriptions(o.eResource()); final IResourceDescription rd = index.getResourceDescription(o.eResource().getURI()); _xblockexpression = this.cm.getVisibleContainers(rd, index); } return _xblockexpression; }