public R exec(XtextResource state) throws Exception { ResourceSet localContext = state.getResourceSet(); if (localContext != null) return work.exec(localContext); return null; } });
protected ClassLoader getClassLoader(final ContentAssistContext context) { final ResourceSet resourceSet = context.getResource().getResourceSet(); if ((resourceSet instanceof XtextResourceSet)) { final Object ctx = ((XtextResourceSet)resourceSet).getClasspathURIContext(); if ((ctx != null)) { if ((ctx instanceof Class<?>)) { return ((Class<?>)ctx).getClassLoader(); } if ((ctx instanceof ClassLoader)) { return ((ClassLoader)ctx); } return ctx.getClass().getClassLoader(); } } return this.classLoader; }
public Collection<Resource> exec(XtextResource resource) throws Exception { if (resource == null || resource.getResourceSet() == null) return null; Collection<Resource> affectedResources = collectAffectedResources(resource, event.getFirst()); if (monitor.isCanceled() || !affectedResources.isEmpty()) return affectedResources; isReparseRequired[0] = isReparseRequired(resource, event.getFirst()); return affectedResources; } });
@Override public <R extends Object> R readOnly(final URI targetURI, final IUnitOfWork<R, ResourceSet> work) { final Function2<Document, XtextResource, R> _function = (Document document, XtextResource resource) -> { try { if ((resource == null)) { return null; } return work.exec(resource.getResourceSet()); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } }; return this.workspaceManager.<R>doRead(targetURI, _function); }
protected Collection<Resource> collectAffectedResources(XtextResource resource, IResourceDescription.Event event) { List<Resource> result = Lists.newArrayListWithExpectedSize(4); ResourceSet resourceSet = resource.getResourceSet(); URIConverter converter = resourceSet.getURIConverter(); Set<URI> normalizedURIs = Sets.newHashSetWithExpectedSize(event.getDeltas().size()); for(IResourceDescription.Delta delta: event.getDeltas()) { normalizedURIs.add(converter.normalize(delta.getUri())); } List<Resource> resources = resourceSet.getResources(); for(int i = 0; i< resources.size(); i++) { Resource res = resources.get(i); if (res != resource && res != null) { URI uri = res.getURI(); try { uri = converter.normalize(uri); } catch (org.eclipse.xtext.resource.ClasspathUriResolutionException e) { // ignore, since the classpath might be broken. } if (normalizedURIs.contains(uri)) result.add(res); } } return result; }
@Override public URI getURIForTrace(XtextResource context) { ResourceSet rs = context.getResourceSet(); if (!(rs instanceof XtextResourceSet && ((XtextResourceSet) rs).getClasspathURIContext() instanceof IJavaProject)) return super.getURIForTrace(context); IJavaProject javaProject = (IJavaProject) ((XtextResourceSet) rs).getClasspathURIContext(); try { return computeTraceURI(context.getURI(), javaProject); } catch (JavaModelException e) { LOG.error(e); } return super.getURIForTrace(context); }
public String exec(XtextResource state) throws Exception { try { EObject targetElement = state.getResourceSet().getEObject(renameElementContext.getTargetElementURI(), false); IRenameStrategy.Provider strategyProvider = globalServiceProvider.findService(targetElement, IRenameStrategy.Provider.class); if (strategyProvider != null) { IRenameStrategy strategy = strategyProvider.get(targetElement, renameElementContext); if (strategy != null) return strategy.getOriginalName(); } } catch(NoSuchStrategyException e) { // null } return null; } });
public static String getCompleteContent(XtextResource xr) throws IOException, UnsupportedEncodingException { XtextResourceSet resourceSet = (XtextResourceSet) xr.getResourceSet(); URIConverter uriConverter = resourceSet.getURIConverter(); URI uri = xr.getURI(); String encoding = xr.getEncoding(); InputStream inputStream = null; try { inputStream = uriConverter.createInputStream(uri); return getCompleteContent(encoding, inputStream); } finally { tryClose(inputStream, null); } }
@Override public void put(final IXtextWebDocument document, final IServiceContext serviceContext) throws IOException { try { try { final URI uri = this.resourceBaseProvider.getFileURI(document.getResourceId()); final OutputStream outputStream = document.getResource().getResourceSet().getURIConverter().createOutputStream(uri); String _encoding = this.encodingProvider.getEncoding(uri); final OutputStreamWriter writer = new OutputStreamWriter(outputStream, _encoding); writer.write(document.getText()); writer.close(); } catch (final Throwable _t) { if (_t instanceof WrappedException) { final WrappedException exception = (WrappedException)_t; throw exception.getCause(); } else { throw Exceptions.sneakyThrow(_t); } } } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }
/** * Produces hyperlinks for the given {@code region} that point to the referenced {@code target}. */ public void createHyperlinksTo(XtextResource from, Region region, EObject target, IHyperlinkAcceptor acceptor) { final URIConverter uriConverter = from.getResourceSet().getURIConverter(); final String hyperlinkText = labelProvider.getText(target); final URI uri = EcoreUtil.getURI(target); final URI normalized = uri.isPlatformResource() ? uri : uriConverter.normalize(uri); XtextHyperlink result = hyperlinkProvider.get(); result.setHyperlinkRegion(region); result.setURI(normalized); result.setHyperlinkText(hyperlinkText); acceptor.accept(result); }
static JvmParameterizedTypeReference parseType(Notifier context, String typeName, AbstractBuilder caller) { ResourceSet resourceSet = toResource(context).getResourceSet(); URI uri = caller.computeUnusedUri(resourceSet); Resource resource = caller.getResourceFactory().createResource(uri); resourceSet.getResources().add(resource); try (StringInputStream is = new StringInputStream(generateTypenameCode(typeName))) { resource.load(is, null); SarlScript script = resource.getContents().isEmpty() ? null : (SarlScript) resource.getContents().get(0); SarlEvent topElement = (SarlEvent) script.getXtendTypes().get(0); SarlField member = (SarlField) topElement.getMembers().get(0); JvmTypeReference reference = member.getType(); if (reference instanceof JvmParameterizedTypeReference) { final JvmParameterizedTypeReference pref = (JvmParameterizedTypeReference) reference; if (!pref.getArguments().isEmpty()) { EcoreUtil2.resolveAll(resource); return pref; } } } catch (Exception exception) { throw new TypeNotPresentException(typeName, exception); } finally { resourceSet.getResources().remove(resource); } throw new TypeNotPresentException(typeName, null); }
XtextResource xtextResource = (XtextResource) eResource(); CompilerPhases compilerPhases = xtextResource.getResourceServiceProvider().get(CompilerPhases.class); if (compilerPhases.isIndexing(xtextResource.getResourceSet())) { allNestedTypesByName = null;
SimpleLocalResourceAccess localResourceAccess = new SimpleLocalResourceAccess(resource.getResourceSet()); referenceFinder.findReferences(getTargetURIs(target), singleton(resource.getURI()), localResourceAccess, acceptor, monitor.newChild(40));
ResourceSet rs = res.getResourceSet(); ResourceSetRecording tree = changeTreeProvider.createChangeTree(rs, Collections.emptyList(), recording); ResourceRecording recordedResource = tree.getRecordedResource(res);
protected boolean isRefactoringEnabled(IRenameElementContext renameElementContext, XtextResource resource) { ResourceSet resourceSet = resource.getResourceSet(); if (renameElementContext != null && resourceSet != null) { EObject targetElement = resourceSet.getEObject(renameElementContext.getTargetElementURI(), true); if (targetElement != null && !targetElement.eIsProxy()) { if(targetElement.eResource() == resource && renameElementContext.getTriggeringEditorSelection() instanceof ITextSelection) { ITextSelection textSelection = (ITextSelection) renameElementContext.getTriggeringEditorSelection(); ITextRegion selectedRegion = new TextRegion(textSelection.getOffset(), textSelection.getLength()); INode crossReferenceNode = eObjectAtOffsetHelper.getCrossReferenceNode(resource, selectedRegion); if(crossReferenceNode == null) { // selection is on the declaration. make sure it's the name ITextRegion significantRegion = locationInFileProvider.getSignificantTextRegion(targetElement); if(!significantRegion.contains(selectedRegion)) return false; } } IRenameStrategy.Provider renameStrategyProvider = globalServiceProvider.findService(targetElement, IRenameStrategy.Provider.class); try { return renameStrategyProvider.get(targetElement, renameElementContext) != null; } catch (NoSuchStrategyException e) { MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Cannot rename element", e.getMessage()); } } } return false; }