Project: edna-rcp
/*
 * generated by Xtext 
 */
package org.edna.datamodel.ui.internal; 
 
import static com.google.inject.util.Modules.override; 
import static com.google.inject.Guice.createInjector; 
 
import org.apache.log4j.Logger; 
 
import org.eclipse.ui.plugin.AbstractUIPlugin; 
import org.osgi.framework.BundleContext; 
 
import com.google.inject.Injector; 
import com.google.inject.Module; 
 
import java.util.Map; 
import java.util.HashMap; 
 
/**
 * This class was generated. Customizations should only happen in a newly 
 * introduced subclass.  
 */
 
public class DatamodelActivator extends AbstractUIPlugin { 
 
 private Map<String,Injector> injectors = new HashMap<String,Injector>(); 
 private static DatamodelActivator INSTANCE; 
 
 public Injector getInjector(String languageName) { 
  return injectors.get(languageName); 
 
  
 @Override 
 public void start(BundleContext context) throws Exception { 
  super.start(context); 
  INSTANCE = this
  try { 
   registerInjectorFor("org.edna.datamodel.Datamodel"); 
    
  catch (Exception e) { 
   Logger.getLogger(getClass()).error(e.getMessage(), e); 
   throw e; 
  
 
  
 protected void registerInjectorFor(String language) throws Exception { 
  injectors.put(language, createInjector( 
    override(override(getRuntimeModule(language)).with(getSharedStateModule())).with(getUiModule(language)))); 
 
  
 @Override 
 public void stop(BundleContext context) throws Exception { 
  injectors.clear(); 
  INSTANCE = null
  super.stop(context); 
 
  
 public static DatamodelActivator getInstance() { 
  return INSTANCE; 
 
  
 protected Module getRuntimeModule(String grammar) { 
  if ("org.edna.datamodel.Datamodel".equals(grammar)) { 
    return new org.edna.datamodel.DatamodelRuntimeModule(); 
  
   
  throw new IllegalArgumentException(grammar); 
 
  
 protected Module getUiModule(String grammar) { 
  if ("org.edna.datamodel.Datamodel".equals(grammar)) { 
    return new org.edna.datamodel.ui.DatamodelUiModule(this); 
  
   
  throw new IllegalArgumentException(grammar); 
 
  
 protected Module getSharedStateModule() { 
  return new org.eclipse.xtext.ui.shared.SharedStateModule(); 
 
  
}