/*******************************************************************************
* Copyright (c) 2008,2010 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.eclipse.emf.mwe2.language;
import org.eclipse.emf.mwe2.language.resource.MweLocationInFileProvider;
import org.eclipse.emf.mwe2.language.resource.MweResourceDescriptionStrategy;
import org.eclipse.emf.mwe2.language.resource.MweResourceSetProvider;
import org.eclipse.emf.mwe2.language.scoping.Mwe2StateBasedContainerManager;
import org.eclipse.emf.mwe2.language.scoping.NamespaceAwareScopeProvider;
import org.eclipse.emf.mwe2.language.scoping.QualifiedNameProvider;
import org.eclipse.xtext.conversion.IValueConverterService;
import org.eclipse.xtext.naming.IQualifiedNameProvider;
import org.eclipse.xtext.resource.IContainer.Manager;
import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
import org.eclipse.xtext.resource.ILocationInFileProvider;
import org.eclipse.xtext.resource.XtextResourceSet;
import com.google.inject.Provider;
/**
* Use this class to register components to be used within the IDE.
*/
public class Mwe2RuntimeModule extends org.eclipse.emf.mwe2.language.AbstractMwe2RuntimeModule {
@Override
public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
return QualifiedNameProvider.class;
}
@Override
public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class)
.annotatedWith(
com.google.inject.name.Names
.named("org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.delegate"))
.to(NamespaceAwareScopeProvider.class);
}
@Override
public Class<? extends IValueConverterService> bindIValueConverterService() {
return Mwe2ValueConverters.class;
}
@Override
public Class<? extends XtextResourceSet> bindXtextResourceSet() {
return null;
}
public Class<? extends Provider<XtextResourceSet>> provideXtextResourceSet() {
return MweResourceSetProvider.class;
}
@Override
public Class<? extends ILocationInFileProvider> bindILocationInFileProvider() {
return MweLocationInFileProvider.class;
}
public Class<? extends IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
return MweResourceDescriptionStrategy.class;
}
@Override
public Class<? extends Manager> bindIContainer$Manager() {
return Mwe2StateBasedContainerManager.class;
}
}