Search in sources :

Example 6 with OutputConfigurationProvider

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;
}
Also used : Path(java.nio.file.Path) ProjectConfigSnapshot(org.eclipse.n4js.xtext.workspace.ProjectConfigSnapshot) OutputConfiguration(org.eclipse.xtext.generator.OutputConfiguration) OutputConfigurationProvider(org.eclipse.xtext.generator.OutputConfigurationProvider) URI(org.eclipse.emf.common.util.URI)

Aggregations

OutputConfigurationProvider (org.eclipse.xtext.generator.OutputConfigurationProvider)6 OutputConfiguration (org.eclipse.xtext.generator.OutputConfiguration)5 BuilderPreferenceAccess (org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess)4 IFile (org.eclipse.core.resources.IFile)2 IFolder (org.eclipse.core.resources.IFolder)2 IJavaProject (org.eclipse.jdt.core.IJavaProject)2 StringInputStream (org.eclipse.xtext.util.StringInputStream)2 Test (org.junit.Test)2 Injector (com.google.inject.Injector)1 IOException (java.io.IOException)1 Path (java.nio.file.Path)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 URI (org.eclipse.emf.common.util.URI)1 ProjectConfigSnapshot (org.eclipse.n4js.xtext.workspace.ProjectConfigSnapshot)1 ISetup (org.eclipse.xtext.ISetup)1 EclipseOutputConfigurationProvider (org.eclipse.xtext.builder.EclipseOutputConfigurationProvider)1 ITraceToBytecodeInstaller (org.eclipse.xtext.generator.trace.ITraceToBytecodeInstaller)1 TraceFileNameProvider (org.eclipse.xtext.generator.trace.TraceFileNameProvider)1 Language (org.eclipse.xtext.maven.Language)1 MavenLog4JConfigurator (org.eclipse.xtext.maven.MavenLog4JConfigurator)1