/******************************************************************************* * Copyright (c) 2010-2012, Zoltan Ujhelyi, Istvan Rath and Daniel Varro * 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 * * Contributors: * Zoltan Ujhelyi - initial API and implementation *******************************************************************************/ package org.eclipse.incquery.tooling.core.generator; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.incquery.patternlanguage.emf.EMFPatternLanguageRuntimeModule; import org.eclipse.incquery.patternlanguage.emf.scoping.IMetamodelProvider; import org.eclipse.incquery.tooling.core.generator.fragments.ExtensionBasedGenerationFragmentProvider; import org.eclipse.incquery.tooling.core.generator.fragments.IGenerationFragmentProvider; import org.eclipse.incquery.tooling.core.generator.genmodel.GenModelMetamodelProviderService; import org.eclipse.incquery.tooling.core.generator.genmodel.IEiqGenmodelProvider; import org.eclipse.incquery.tooling.core.generator.jvmmodel.EMFPatternLanguageJvmModelInferrer; import org.eclipse.incquery.tooling.core.generator.types.GenModelBasedTypeProvider; import org.eclipse.xtext.common.types.access.IJvmTypeProvider; import org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory; import org.eclipse.xtext.xbase.jvmmodel.IJvmModelInferrer; import org.eclipse.xtext.xbase.typing.ITypeProvider; public class GeneratorModule extends EMFPatternLanguageRuntimeModule { public Class<? extends IGenerationFragmentProvider> bindIGenerationFragmentProvider() { return ExtensionBasedGenerationFragmentProvider.class; } // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment public Class<? extends IJvmModelInferrer> bindIJvmModelInferrer() { return EMFPatternLanguageJvmModelInferrer.class; } // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment public IWorkspaceRoot bindIWorkspaceRootToInstance() { return ResourcesPlugin.getWorkspace().getRoot(); } // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment @Override public Class<? extends IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() { return JdtTypeProviderFactory.class; } @Override public Class<? extends IMetamodelProvider> bindIMetamodelProvider() { return GenModelMetamodelProviderService.class; } public Class<? extends IEiqGenmodelProvider> bindIEiqGenmodelProvider() { return GenModelMetamodelProviderService.class; } @Override public Class<? extends ITypeProvider> bindITypeProvider() { return GenModelBasedTypeProvider.class; } }