package org.eclipselabs.spray.generator.graphiti; import org.eclipse.jdt.core.formatter.CodeFormatter; import org.eclipse.xtext.generator.JavaIoFileSystemAccess; import org.eclipse.xtext.service.AbstractGenericModule; import org.eclipselabs.spray.generator.graphiti.formatting.CodeFormatterProvider; import org.eclipselabs.spray.generator.graphiti.formatting.IPostProcessor; import org.eclipselabs.spray.generator.graphiti.formatting.JavaIoFileSystemAccessExt; import org.eclipselabs.spray.generator.graphiti.formatting.JavaPostProcessor; import org.eclipselabs.spray.generator.graphiti.util.ImportUtil; import com.google.inject.Binder; import com.google.inject.Scopes; import com.google.inject.name.Names; public class GraphitiGeneratorModule extends AbstractGenericModule { @Override public void configure(Binder binder) { super.configure(binder); binder.bind(ImportUtil.class).in(Scopes.SINGLETON); } public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() { return SprayGenerator.class; } public Class<? extends JavaIoFileSystemAccess> bindJavaIoFileSystemAccess() { return JavaIoFileSystemAccessExt.class; } public void configureCodeFormatterProvider(Binder binder) { binder.bind(CodeFormatter.class).toProvider(CodeFormatterProvider.class); } public void configureJavaPostProcessor(Binder binder) { binder.bind(IPostProcessor.class).annotatedWith(Names.named("java")).to(JavaPostProcessor.class); } public void configureJavaFormatterConfig(Binder binder) { binder.bind(String.class).annotatedWith(Names.named(CodeFormatterProvider.JDT_FORMATTER_CONFIG)).toInstance("org/eclipselabs/spray/generator/graphiti/formatting/formatter.xml"); } }