/*
 * generated by Xtext 2.11.0
 */
package org.eclipse.osbp.xtext.gridsource.ui;

import com.google.inject.Injector;
import org.eclipse.osbp.xtext.gridsource.ui.internal.GridsourceActivator;
import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
import org.osgi.framework.Bundle;

/**
 * This class was generated. Customizations should only happen in a newly
 * introduced subclass. 
 */
public class GridSourceExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {

	@Override
	protected Bundle getBundle() {
		return GridsourceActivator.getInstance().getBundle();
	}
	
	@Override
	protected Injector getInjector() {
		return GridsourceActivator.getInstance().getInjector(GridsourceActivator.ORG_ECLIPSE_OSBP_XTEXT_GRIDSOURCE_GRIDSOURCE);
	}
	
}
