package org.eclipselabs.spray.xtext;
import java.util.Set;
import org.eclipse.xtext.documentation.IEObjectDocumentationProvider;
import org.eclipse.xtext.naming.IQualifiedNameProvider;
import org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider;
import org.eclipse.xtext.xbase.typing.ITypeProvider;
import org.eclipselabs.spray.xtext.api.IConstants;
import org.eclipselabs.spray.xtext.customizing.SprayDocumentationProvider;
import org.eclipselabs.spray.xtext.customizing.SprayQualifiedNameProvider;
import org.eclipselabs.spray.xtext.customizing.SpraySimpleNameProvider;
import org.eclipselabs.spray.xtext.customizing.SprayTypeProvider;
import org.eclipselabs.spray.xtext.scoping.SprayScopeProvider;
import com.google.common.collect.Sets;
import com.google.inject.Binder;
import com.google.inject.name.Names;
/**
* Use this class to register components to be used at runtime / without the Equinox extension registry.
*/
@SuppressWarnings("restriction")
public class SprayRuntimeModule extends AbstractSprayRuntimeModule {
@Override
public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
return SprayQualifiedNameProvider.class;
}
@Override
public Class<? extends IdentifiableSimpleNameProvider> bindIdentifiableSimpleNameProvider() {
return SpraySimpleNameProvider.class;
}
@Override
public Class<? extends ITypeProvider> bindITypeProvider() {
return SprayTypeProvider.class;
}
public Class<? extends IEObjectDocumentationProvider> bindIEObjectDocumentationProvider() {
return SprayDocumentationProvider.class;
}
public void configureValidIconFileExtensions(Binder binder) {
binder.bind(Set.class).annotatedWith(Names.named(IConstants.NAME_VALID_ICON_FILE_EXTENSIONS)).toInstance(Sets.newHashSet("gif", "png", "bmp", "ico"));
}
public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
return SprayScopeProvider.class;
}
}