package org.eclipse.emf.parsley.examples.cdo.company.ui.orders;

import com.google.inject.Injector;
import org.eclipse.emf.parsley.examples.cdo.company.ui.orders.OrdersInjectorProvider;
import org.eclipse.emf.parsley.runtime.ui.AbstractGuiceAwareExecutableExtensionFactory;

@SuppressWarnings("all")
public class OrdersExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
  @Override
  public Injector getInjector() throws Exception {
    return OrdersInjectorProvider.getInjector();
  }
}
