use of org.eclipse.xtext.resource.impl.ResourceDescriptionsData in project xtext-core by eclipse.
the class ProjectManager method createFreshResourceSet.
protected XtextResourceSet createFreshResourceSet(final ResourceDescriptionsData newIndex) {
if ((this.resourceSet == null)) {
this.resourceSet = this.createNewResourceSet(newIndex);
} else {
final ChunkedResourceDescriptions resDescs = ChunkedResourceDescriptions.findInEmfObject(this.resourceSet);
Set<Map.Entry<String, ResourceDescriptionsData>> _entrySet = this.indexProvider.get().entrySet();
for (final Map.Entry<String, ResourceDescriptionsData> entry : _entrySet) {
resDescs.setContainer(entry.getKey(), entry.getValue());
}
resDescs.setContainer(this.projectDescription.getName(), newIndex);
}
return this.resourceSet;
}
use of org.eclipse.xtext.resource.impl.ResourceDescriptionsData in project xtext-core by eclipse.
the class AbstractIncrementalBuilderTest method newBuildRequest.
protected BuildRequest newBuildRequest(final Procedure1<? super BuildRequest> init) {
BuildRequest _buildRequest = new BuildRequest();
final Procedure1<BuildRequest> _function = (BuildRequest it) -> {
final ResourceDescriptionsData newIndex = this.indexState.getResourceDescriptions().copy();
it.setBaseDir(this.uri(""));
XtextResourceSet _get = this.resourceSetProvider.get();
final Procedure1<XtextResourceSet> _function_1 = (XtextResourceSet it_1) -> {
it_1.getURIConverter().getURIHandlers().clear();
EList<URIHandler> _uRIHandlers = it_1.getURIConverter().getURIHandlers();
_uRIHandlers.add(this.inMemoryURIHandler);
it_1.setClasspathURIContext(AbstractIncrementalBuilderTest.class.getClassLoader());
ProjectDescription _projectDescription = new ProjectDescription();
final Procedure1<ProjectDescription> _function_2 = (ProjectDescription it_2) -> {
it_2.setName("test-project");
};
final ProjectDescription projectDescription = ObjectExtensions.<ProjectDescription>operator_doubleArrow(_projectDescription, _function_2);
projectDescription.attachToEmfObject(it_1);
Map<String, ResourceDescriptionsData> _emptyMap = CollectionLiterals.<String, ResourceDescriptionsData>emptyMap();
final ChunkedResourceDescriptions index = new ChunkedResourceDescriptions(_emptyMap, it_1);
index.setContainer(projectDescription.getName(), newIndex);
};
XtextResourceSet _doubleArrow = ObjectExtensions.<XtextResourceSet>operator_doubleArrow(_get, _function_1);
it.setResourceSet(_doubleArrow);
it.setDirtyFiles(Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList()));
it.setDeletedFiles(Collections.<URI>unmodifiableList(CollectionLiterals.<URI>newArrayList()));
final BuildRequest.IPostValidationCallback _function_2 = (URI uri, Iterable<Issue> issues) -> {
Iterables.<Issue>addAll(this.issues, issues);
return IterableExtensions.isEmpty(issues);
};
it.setAfterValidate(_function_2);
final Procedure1<URI> _function_3 = (URI it_1) -> {
this.deleted.add(it_1);
};
it.setAfterDeleteFile(_function_3);
final Procedure2<URI, URI> _function_4 = (URI source, URI target) -> {
this.generated.put(source, target);
};
it.setAfterGenerateFile(_function_4);
Source2GeneratedMapping _copy = this.indexState.getFileMappings().copy();
IndexState _indexState = new IndexState(newIndex, _copy);
it.setState(_indexState);
};
final BuildRequest result = ObjectExtensions.<BuildRequest>operator_doubleArrow(_buildRequest, _function);
init.apply(result);
return result;
}
use of org.eclipse.xtext.resource.impl.ResourceDescriptionsData in project xtext-core by eclipse.
the class XtextGeneratorLanguage method installIndex.
private void installIndex() {
List<IResourceDescription> _emptyList = Collections.<IResourceDescription>emptyList();
final ResourceDescriptionsData index = new ResourceDescriptionsData(_emptyList);
final ArrayList<Resource> resources = Lists.<Resource>newArrayList(this.resourceSet.getResources());
for (final Resource resource : resources) {
this.index(resource, resource.getURI(), index);
}
ResourceDescriptionsData.ResourceSetAdapter.installResourceDescriptionsData(this.resourceSet, index);
}
use of org.eclipse.xtext.resource.impl.ResourceDescriptionsData in project xtext-core by eclipse.
the class FlatResourceSetBasedAllContainersState method containsURI.
@Override
public boolean containsURI(String containerHandle, URI candidateURI) {
if (!HANDLE.equals(containerHandle))
return false;
if (resourceSet instanceof XtextResourceSet) {
ResourceDescriptionsData descriptionsData = findResourceDescriptionsData(resourceSet);
if (descriptionsData != null) {
return descriptionsData.getResourceDescription(candidateURI) != null;
}
Collection<URI> allUris = ((XtextResourceSet) resourceSet).getNormalizationMap().values();
for (URI uri : allUris) {
if (uri.equals(candidateURI)) {
return true;
}
}
return false;
}
URIConverter uriConverter = resourceSet.getURIConverter();
for (Resource r : resourceSet.getResources()) {
URI normalized = uriConverter.normalize(r.getURI());
if (normalized.equals(candidateURI)) {
return true;
}
}
return false;
}
use of org.eclipse.xtext.resource.impl.ResourceDescriptionsData in project xtext-core by eclipse.
the class IncrementalBuilder method build.
public IncrementalBuilder.Result build(final BuildRequest request, final Function1<? super URI, ? extends IResourceServiceProvider> languages, final IResourceClusteringPolicy clusteringPolicy) {
try {
final XtextResourceSet resourceSet = request.getResourceSet();
ResourceDescriptionsData _copy = request.getState().getResourceDescriptions().copy();
Source2GeneratedMapping _copy_1 = request.getState().getFileMappings().copy();
final IndexState oldState = new IndexState(_copy, _copy_1);
CancelIndicator _cancelIndicator = request.getCancelIndicator();
final BuildContext context = new BuildContext(languages, resourceSet, oldState, clusteringPolicy, _cancelIndicator);
final IncrementalBuilder.InternalStatefulIncrementalBuilder builder = this.provider.get();
builder.context = context;
builder.request = request;
try {
return builder.launch();
} catch (final Throwable _t) {
if (_t instanceof Throwable) {
final Throwable t = (Throwable) _t;
this._operationCanceledManager.propagateIfCancelException(t);
throw t;
} else {
throw Exceptions.sneakyThrow(_t);
}
}
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
Aggregations