Search in sources :

Example 56 with URI

use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.

the class WorkspaceManager method doRead.

public <T extends Object> T doRead(final URI uri, final Function2<? super Document, ? super XtextResource, ? extends T> work) {
    final URI resourceURI = uri.trimFragment();
    final ProjectManager projectMnr = this.getProjectManager(resourceURI);
    Resource _resource = null;
    if (projectMnr != null) {
        _resource = projectMnr.getResource(resourceURI);
    }
    final XtextResource resource = ((XtextResource) _resource);
    if ((resource == null)) {
        return work.apply(null, null);
    }
    Document doc = this.getDocument(resource);
    Resource _resource_1 = projectMnr.getResource(resourceURI);
    return work.apply(doc, ((XtextResource) _resource_1));
}
Also used : XtextResource(org.eclipse.xtext.resource.XtextResource) Resource(org.eclipse.emf.ecore.resource.Resource) XtextResource(org.eclipse.xtext.resource.XtextResource) Document(org.eclipse.xtext.ide.server.Document) URI(org.eclipse.emf.common.util.URI) ProjectManager(org.eclipse.xtext.ide.server.ProjectManager)

Example 57 with URI

use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.

the class DocumentSymbolService method getDefinitions.

public List<? extends Location> getDefinitions(final XtextResource resource, final int offset, final IReferenceFinder.IResourceAccess resourceAccess, final CancelIndicator cancelIndicator) {
    final EObject element = this._eObjectAtOffsetHelper.resolveElementAt(resource, offset);
    if ((element == null)) {
        return CollectionLiterals.<Location>emptyList();
    }
    final ArrayList<Location> locations = CollectionLiterals.<Location>newArrayList();
    final TargetURIs targetURIs = this.collectTargetURIs(element);
    for (final URI targetURI : targetURIs) {
        {
            this.operationCanceledManager.checkCanceled(cancelIndicator);
            final Procedure1<EObject> _function = (EObject obj) -> {
                final Location location = this._documentExtensions.newLocation(obj);
                if ((location != null)) {
                    locations.add(location);
                }
            };
            this.doRead(resourceAccess, targetURI, _function);
        }
    }
    return locations;
}
Also used : EObject(org.eclipse.emf.ecore.EObject) Procedure1(org.eclipse.xtext.xbase.lib.Procedures.Procedure1) TargetURIs(org.eclipse.xtext.findReferences.TargetURIs) URI(org.eclipse.emf.common.util.URI) Location(org.eclipse.lsp4j.Location)

Example 58 with URI

use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.

the class TextDocumentChangeToString method getTitle.

protected String getTitle(IEmfResourceChange change) {
    URI newUri = change.getNewURI();
    URI oldURI = change.getOldURI();
    if (oldURI == null && newUri == null) {
        return "error, both URIs are null";
    }
    if (newUri == null) {
        return "deleted " + oldURI;
    }
    if (oldURI == null) {
        return "created " + newUri;
    }
    if (oldURI.equals(newUri)) {
        return oldURI.toString();
    }
    return "renamed " + oldURI + " to " + newUri;
}
Also used : URI(org.eclipse.emf.common.util.URI)

Example 59 with URI

use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.

the class EObjectSnapshotProvider method createEObjectSnapshots.

protected Map<EObject, IEObjectSnapshot> createEObjectSnapshots(Resource resource) {
    Map<EObject, IEObjectSnapshot> result = Maps.newLinkedHashMap();
    for (IEObjectDescription desc : descriptionProvider.getEObjectDescriptions(resource)) {
        EObject obj = EcoreUtil.resolve(desc.getEObjectOrProxy(), resource);
        EObjectSnapshot snapshot = getOrCreate(result, obj);
        snapshot.descriptions.add(desc);
    }
    ResourceSet resourceSet = resource.getResourceSet();
    IResourceDescriptions descriptions = resourceDescriptionsProvider.getResourceDescriptions(resourceSet);
    URI uri = resource.getURI();
    for (IResourceDescription desc : descriptions.getAllResourceDescriptions()) {
        for (IReferenceDescription ref : desc.getReferenceDescriptions()) {
            URI targetURI = ref.getTargetEObjectUri();
            URI sourceEObjectUri = ref.getSourceEObjectUri();
            EReference reference = ref.getEReference();
            if (targetURI == null || sourceEObjectUri == null || reference == null) {
                continue;
            }
            if (!uri.equals(targetURI.trimFragment())) {
                continue;
            }
            EObject target = resource.getEObject(targetURI.fragment());
            if (target == null || target.eIsProxy()) {
                continue;
            }
            EObjectSnapshot snapshot = getOrCreate(result, target);
            ReferenceSnapshot rd = new ReferenceSnapshot(sourceEObjectUri, snapshot, reference, ref.getIndexInList(), ref.getContainerEObjectURI());
            snapshot.incomingReferences.add(rd);
        }
    }
    return result;
}
Also used : IEObjectSnapshot(org.eclipse.xtext.ide.serializer.hooks.IEObjectSnapshot) IResourceDescription(org.eclipse.xtext.resource.IResourceDescription) EObject(org.eclipse.emf.ecore.EObject) IResourceDescriptions(org.eclipse.xtext.resource.IResourceDescriptions) ResourceSet(org.eclipse.emf.ecore.resource.ResourceSet) IEObjectSnapshot(org.eclipse.xtext.ide.serializer.hooks.IEObjectSnapshot) URI(org.eclipse.emf.common.util.URI) IReferenceSnapshot(org.eclipse.xtext.ide.serializer.hooks.IReferenceSnapshot) EReference(org.eclipse.emf.ecore.EReference) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) IReferenceDescription(org.eclipse.xtext.resource.IReferenceDescription)

Example 60 with URI

use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.

the class RecordingXtextResourceUpdater method toString.

@Override
public String toString() {
    StringBuilder result = new StringBuilder(getClass().getSimpleName());
    URI oldURI = getSnapshot().getURI();
    URI newURI = getResource().getURI();
    if (oldURI.equals(newURI)) {
        result.append(" " + oldURI);
    } else {
        result.append(" " + oldURI + " -> " + newURI);
    }
    if (document != null) {
        result.append("\n" + document);
    }
    return result.toString();
}
Also used : URI(org.eclipse.emf.common.util.URI)

Aggregations

URI (org.eclipse.emf.common.util.URI)305 Resource (org.eclipse.emf.ecore.resource.Resource)85 Test (org.junit.Test)79 EObject (org.eclipse.emf.ecore.EObject)55 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)37 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)33 XtextResource (org.eclipse.xtext.resource.XtextResource)32 XtextResourceSet (org.eclipse.xtext.resource.XtextResourceSet)26 BuildRequest (org.eclipse.xtext.build.BuildRequest)23 File (java.io.File)20 AbstractIncrementalBuilderTest (org.eclipse.xtext.testing.builder.AbstractIncrementalBuilderTest)20 ResourceSetImpl (org.eclipse.emf.ecore.resource.impl.ResourceSetImpl)19 IOException (java.io.IOException)18 InternalEObject (org.eclipse.emf.ecore.InternalEObject)18 EPackage (org.eclipse.emf.ecore.EPackage)15 IResourceDescription (org.eclipse.xtext.resource.IResourceDescription)15 InputStream (java.io.InputStream)14 ByteArrayInputStream (java.io.ByteArrayInputStream)13 ArrayList (java.util.ArrayList)13 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)13