use of org.eclipse.xtext.generator.OutputConfigurationProvider in project n4js by eclipse.
the class XStatefulIncrementalBuilder method isResourceInOutputDirectory.
private boolean isResourceInOutputDirectory(Resource resource, IResourceServiceProvider serviceProvider) {
XWorkspaceManager workspaceManager = serviceProvider.get(XWorkspaceManager.class);
if (workspaceManager == null) {
return false;
}
OutputConfigurationProvider outputConfProvider = serviceProvider.get(OutputConfigurationProvider.class);
URI resourceUri = resource.getURI();
ProjectConfigSnapshot projectConfig = workspaceManager.getProjectConfig(resourceUri);
Set<OutputConfiguration> outputConfigurations = outputConfProvider.getOutputConfigurations(resource);
URI projectBaseUri = projectConfig.getPath();
Path resourcePath = URIUtils.toPath(resourceUri);
for (OutputConfiguration outputConf : outputConfigurations) {
for (String outputDir : outputConf.getOutputDirectories()) {
URI outputUri = projectBaseUri.appendSegment(outputDir);
Path outputPath = URIUtils.toPath(outputUri);
if (resourcePath.startsWith(outputPath)) {
return true;
}
}
}
return false;
}
Aggregations