use of org.eclipse.n4js.utils.Lazy in project n4js by eclipse.
the class N4HeadlessCompiler method postProcessResources.
/*
* ===============================================================================================================
*
* PROJECT POST-PROCESSING
*
* ===============================================================================================================
*/
/**
* Post processing on the whole project. While validations can trigger post processing in a lazy way, they do not
* guarantee that all resources will be fully processed. This is an issue in larger project graphs. Unlike in the
* IDE which can at any point load AST on demand based on the TModel, the HLC does not allow to access AST after
* unloading therefore we explicitly post process all N4JS resources in the given project.
*
* @param markedProject
* project to trigger post process.
*/
private void postProcessResources(MarkedProject markedProject) {
if (logger.isCreateDebugOutput())
logger.debug(" PostProcessing " + markedProject);
Iterables.filter(markedProject.resources, resource -> resource.isLoaded()).forEach(resource -> {
if (resource instanceof N4JSResource) {
N4JSResource n4jsResource = (N4JSResource) resource;
// Make sure the resource is fully postprocessed before unloading the AST. Otherwise, resolving
// cross references to the elements inside the resources from dependent projects will fail.
n4jsResource.performPostProcessing();
}
});
}
Aggregations