Search in sources :

Example 1 with EclipseOutputConfigurationProvider

use of org.eclipse.xtext.builder.EclipseOutputConfigurationProvider in project xtext-eclipse by eclipse.

the class DebugSourceInstallingCompilationParticipant method findOutputConfiguration.

protected OutputConfiguration findOutputConfiguration(SourceRelativeURI dslSourceFile, IFile generatedJavaFile) {
    IResourceServiceProvider serviceProvider = serviceProviderRegistry.getResourceServiceProvider(dslSourceFile.getURI());
    if (serviceProvider == null)
        return null;
    EclipseOutputConfigurationProvider cfgProvider = serviceProvider.get(EclipseOutputConfigurationProvider.class);
    IProject project = generatedJavaFile.getProject();
    Set<OutputConfiguration> configurations = cfgProvider.getOutputConfigurations(project);
    if (!configurations.isEmpty()) {
        if (configurations.size() == 1)
            return configurations.iterator().next();
        for (OutputConfiguration out : configurations) {
            for (String source : out.getSourceFolders()) {
                IContainer container = ResourceUtil.getContainer(project, out.getOutputDirectory(source));
                if (container != null && container.getFullPath().isPrefixOf(generatedJavaFile.getFullPath()))
                    return out;
            }
        }
    }
    log.error("Could not find output configuration for file " + generatedJavaFile.getFullPath());
    return null;
}
Also used : IResourceServiceProvider(org.eclipse.xtext.resource.IResourceServiceProvider) OutputConfiguration(org.eclipse.xtext.generator.OutputConfiguration) EclipseOutputConfigurationProvider(org.eclipse.xtext.builder.EclipseOutputConfigurationProvider) IContainer(org.eclipse.core.resources.IContainer) IProject(org.eclipse.core.resources.IProject)

Aggregations

IContainer (org.eclipse.core.resources.IContainer)1 IProject (org.eclipse.core.resources.IProject)1 EclipseOutputConfigurationProvider (org.eclipse.xtext.builder.EclipseOutputConfigurationProvider)1 OutputConfiguration (org.eclipse.xtext.generator.OutputConfiguration)1 IResourceServiceProvider (org.eclipse.xtext.resource.IResourceServiceProvider)1