/*******************************************************************************
* Copyright (c) 2012 itemis AG (http://www.itemis.eu) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.xpect.registry;
import static org.eclipse.emf.common.EMFPlugin.IS_ECLIPSE_RUNNING;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import com.google.inject.Injector;
import com.google.inject.Module;
/**
* @author Moritz Eysholdt - Initial contribution and API
*/
public interface ILanguageInfo {
public interface Registry {
public static final Registry INSTANCE = IS_ECLIPSE_RUNNING ? new DelegatingLanguageRegistry() : new StandaloneLanguageRegistry();
public abstract ILanguageInfo getLanguageByFileExtension(String fileExtension);
public abstract ILanguageInfo getLanguageByName(String languageName);
public abstract Collection<ILanguageInfo> getLanguages();
}
public Set<String> getFileExtensions();
public Injector getInjector();
public Injector getInjector(List<Class<? extends Module>> moduleClasses);
public String getLanguageName();
public Class<? extends Module> getRuntimeModuleClass();
public Class<? extends Module> getUIModuleClass();
}