use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.
the class ResourceStorageTest method testUpstreamResourcesAreLoadedFromStorage.
@Test
public void testUpstreamResourcesAreLoadedFromStorage() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package mypack");
_builder.newLine();
_builder.newLine();
_builder.append("class MyClass {");
_builder.newLine();
_builder.append("}");
_builder.newLine();
this.helper.createFile("mypack/MyClass.xtend", _builder.toString());
final IProject downStreamProject = WorkbenchTestHelper.createPluginProject("downstream", this.helper.getProject().getName());
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package downstream");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("class SomeClass {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def void foo(mypack.MyClass myClass) {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
final IFile downstreamFile = this.helper.createFileImpl("/downstream/src/downstream/SomeClass.xtend", _builder_1.toString());
IResourcesSetupUtil.waitForBuild();
final URI downstreamUri = this.uriMapper.getUri(downstreamFile);
final ResourceSet resourceSet = this.resourceSetProvider.get(downStreamProject);
SourceLevelURIsAdapter.setSourceLevelUris(resourceSet, Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList(downstreamUri)));
Resource _resource = resourceSet.getResource(downstreamUri, true);
final StorageAwareResource downstreamResource = ((StorageAwareResource) _resource);
EObject _get = downstreamResource.getContents().get(1);
final JvmGenericType type = ((JvmGenericType) _get);
final JvmType parameterType = IterableExtensions.<JvmFormalParameter>head(IterableExtensions.<JvmOperation>head(Iterables.<JvmOperation>filter(type.getMembers(), JvmOperation.class)).getParameters()).getParameterType().getType();
Assert.assertNotNull(parameterType);
Resource _eResource = parameterType.eResource();
Assert.assertTrue(((StorageAwareResource) _eResource).isLoadedFromStorage());
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.
the class ResourceStorageTest method testDecodeURI.
@Test
public void testDecodeURI() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package mypack");
_builder.newLine();
_builder.newLine();
_builder.append("class Foo {");
_builder.newLine();
_builder.append("\t");
_builder.append("public def void foo() {");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final IFile file = this.helper.createFile("mypack/MyClass Foo.xtend", _builder.toString());
IResourcesSetupUtil.waitForBuild();
final ResourceStorageTest.TestableStorageAwareTrace storageAwareTrace = new ResourceStorageTest.TestableStorageAwareTrace();
this.getInjector().injectMembers(storageAwareTrace);
storageAwareTrace.setLocalStorage(file);
URI _createURI = URI.createURI("mypack/MyClass%20Foo.xtend");
SourceRelativeURI _sourceRelativeURI = new SourceRelativeURI(_createURI);
AbsoluteURI result = storageAwareTrace.resolvePath(_sourceRelativeURI);
Assert.assertEquals("platform:/resource/test.project/src/mypack/MyClass%20Foo.xtend", result.toString());
IProject _project = this.helper.getProject();
URI _createURI_1 = URI.createURI("src/mypack/MyClass%20Foo.xtend");
SourceRelativeURI _sourceRelativeURI_1 = new SourceRelativeURI(_createURI_1);
result = storageAwareTrace.resolvePath(_project, _sourceRelativeURI_1);
Assert.assertEquals("platform:/resource/test.project/src/mypack/MyClass%20Foo.xtend", result.toString());
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.emf.common.util.URI in project xtext-xtend by eclipse.
the class ResourceStorageTest method testLoadFromStorage.
@Test
public void testLoadFromStorage() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package mypack");
_builder.newLine();
_builder.newLine();
_builder.append("class MyClass {");
_builder.newLine();
_builder.append("\t");
_builder.append("public def void foo() {");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
final IFile file = this.helper.createFile("src/mypack/MyClass.xtend", _builder.toString());
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package mypack");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("class OtherClass extends MyClass {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("override foo() {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
final IFile file2 = this.helper.createFile("src/mypack/OtherClass.xtend", _builder_1.toString());
IResourcesSetupUtil.waitForBuild();
final URI uri = this.uriMapper.getUri(file);
final URI uri2 = this.uriMapper.getUri(file2);
final ResourceSet resourceSet = this.resourceSetProvider.get(file.getProject());
SourceLevelURIsAdapter.setSourceLevelUris(resourceSet, Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList()));
Resource _resource = resourceSet.getResource(uri2, true);
final StorageAwareResource resource2 = ((StorageAwareResource) _resource);
Assert.assertTrue(resource2.isLoadedFromStorage());
EcoreUtil.resolveAll(resource2);
final Function1<IEObjectDescription, String> _function = (IEObjectDescription it) -> {
return it.getName().toString();
};
Assert.assertEquals("mypack.OtherClass", IterableExtensions.join(IterableExtensions.<IEObjectDescription, String>map(resource2.getResourceDescription().getExportedObjects(), _function), ","));
Resource _resource_1 = resourceSet.getResource(uri, false);
final StorageAwareResource resource = ((StorageAwareResource) _resource_1);
Assert.assertTrue(resource.isLoadedFromStorage());
final Function1<IEObjectDescription, String> _function_1 = (IEObjectDescription it) -> {
return it.getName().toString();
};
Assert.assertEquals("mypack.MyClass", IterableExtensions.join(IterableExtensions.<IEObjectDescription, String>map(resource.getResourceDescription().getExportedObjects(), _function_1), ","));
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.
the class BuildManager method internalBuild.
protected List<IResourceDescription.Delta> internalBuild(final CancelIndicator cancelIndicator) {
final ArrayList<URI> allDirty = new ArrayList<URI>(this.dirtyFiles);
final HashMultimap<ProjectDescription, URI> project2dirty = HashMultimap.<ProjectDescription, URI>create();
for (final URI dirty : allDirty) {
{
final ProjectDescription projectManager = this.workspaceManager.getProjectManager(dirty).getProjectDescription();
project2dirty.put(projectManager, dirty);
}
}
final HashMultimap<ProjectDescription, URI> project2deleted = HashMultimap.<ProjectDescription, URI>create();
for (final URI deleted : this.deletedFiles) {
{
final ProjectDescription projectManager = this.workspaceManager.getProjectManager(deleted).getProjectDescription();
project2deleted.put(projectManager, deleted);
}
}
Set<ProjectDescription> _keySet = project2dirty.keySet();
Set<ProjectDescription> _keySet_1 = project2deleted.keySet();
Iterable<ProjectDescription> _plus = Iterables.<ProjectDescription>concat(_keySet, _keySet_1);
final List<ProjectDescription> sortedDescriptions = this.sortByDependencies(_plus);
final ArrayList<IResourceDescription.Delta> result = CollectionLiterals.<IResourceDescription.Delta>newArrayList();
for (final ProjectDescription it : sortedDescriptions) {
{
final ProjectManager projectManager = this.workspaceManager.getProjectManager(it.getName());
final List<URI> projectDirty = IterableExtensions.<URI>toList(project2dirty.get(it));
final List<URI> projectDeleted = IterableExtensions.<URI>toList(project2deleted.get(it));
final IncrementalBuilder.Result partialResult = projectManager.doBuild(projectDirty, projectDeleted, result, cancelIndicator);
final Function1<IResourceDescription.Delta, URI> _function = (IResourceDescription.Delta it_1) -> {
return it_1.getUri();
};
allDirty.addAll(ListExtensions.<IResourceDescription.Delta, URI>map(partialResult.getAffectedResources(), _function));
Iterables.removeAll(this.dirtyFiles, projectDirty);
Iterables.removeAll(this.deletedFiles, projectDeleted);
result.addAll(partialResult.getAffectedResources());
}
}
return result;
}
use of org.eclipse.emf.common.util.URI in project xtext-core by eclipse.
the class LanguageServerImpl method rename.
@Override
public CompletableFuture<WorkspaceEdit> rename(final RenameParams params) {
final Function1<CancelIndicator, WorkspaceEdit> _function = (CancelIndicator cancelIndicator) -> {
WorkspaceEdit _xblockexpression = null;
{
final URI uri = this._uriExtensions.toUri(params.getTextDocument().getUri());
final IResourceServiceProvider resourceServiceProvider = this.languagesRegistry.getResourceServiceProvider(uri);
IRenameService _get = null;
if (resourceServiceProvider != null) {
_get = resourceServiceProvider.<IRenameService>get(IRenameService.class);
}
final IRenameService renameService = _get;
if ((renameService == null)) {
return new WorkspaceEdit();
}
_xblockexpression = renameService.rename(this.workspaceManager, params, cancelIndicator);
}
return _xblockexpression;
};
return this.requestManager.<WorkspaceEdit>runRead(_function);
}
Aggregations