Search in sources :

Example 11 with ISetup

use of org.eclipse.xtext.ISetup in project xtext-extras by eclipse.

the class LanguageAccessFactory method createLanguageAccess.

public Map<String, LanguageAccess> createLanguageAccess(List<? extends ILanguageConfiguration> languageConfigs, ClassLoader compilerClassLoder) {
    Map<String, LanguageAccess> result = new HashMap<String, LanguageAccess>();
    for (ILanguageConfiguration languageGenConf : languageConfigs) {
        ISetup setup;
        try {
            Class<?> loadClass = compilerClassLoder.loadClass(languageGenConf.getSetup());
            if (!ISetup.class.isAssignableFrom(loadClass)) {
                throw new IllegalArgumentException("Language setup class " + languageGenConf.getSetup() + " must implement " + ISetup.class.getName());
            }
            setup = (ISetup) loadClass.getDeclaredConstructor().newInstance();
        } catch (Exception e) {
            throw new IllegalStateException("Failed to load language setup for class '" + languageGenConf.getSetup() + "'.", e);
        }
        Injector injector = setup.createInjectorAndDoEMFRegistration();
        IResourceServiceProvider serviceProvider = injector.getInstance(IResourceServiceProvider.class);
        FileExtensionProvider fileExtensionProvider = injector.getInstance(FileExtensionProvider.class);
        LanguageAccess languageAccess = new LanguageAccess(languageGenConf.getOutputConfigurations(), serviceProvider, languageGenConf.isJavaSupport());
        for (String extension : fileExtensionProvider.getFileExtensions()) {
            result.put(extension, languageAccess);
        }
    }
    return result;
}
Also used : HashMap(java.util.HashMap) ISetup(org.eclipse.xtext.ISetup) FileExtensionProvider(org.eclipse.xtext.resource.FileExtensionProvider) IResourceServiceProvider(org.eclipse.xtext.resource.IResourceServiceProvider) Injector(com.google.inject.Injector)

Aggregations

ISetup (org.eclipse.xtext.ISetup)11 Injector (com.google.inject.Injector)8 FileExtensionProvider (org.eclipse.xtext.resource.FileExtensionProvider)2 Model (org.eclipse.xtext.ui.tests.editor.outline.outlineTest.Model)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 ImageDescriptor (org.eclipse.jface.resource.ImageDescriptor)1 OutputConfiguration (org.eclipse.xtext.generator.OutputConfiguration)1 OutputConfigurationProvider (org.eclipse.xtext.generator.OutputConfigurationProvider)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 MavenStandaloneBuilderModule (org.eclipse.xtext.maven.MavenStandaloneBuilderModule)1 DefaultLocationInFileProvider (org.eclipse.xtext.resource.DefaultLocationInFileProvider)1 IResourceServiceProvider (org.eclipse.xtext.resource.IResourceServiceProvider)1 ResourceServiceProviderRegistryImpl (org.eclipse.xtext.resource.impl.ResourceServiceProviderRegistryImpl)1 DefaultOutlineTreeProvider (org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider)1 EObjectNode (org.eclipse.xtext.ui.editor.outline.impl.EObjectNode)1