package io.lumify.translate;
import com.google.inject.Binder;
import com.google.inject.Scopes;
import io.lumify.core.bootstrap.BootstrapBindingProvider;
import io.lumify.core.config.Configuration;
import io.lumify.core.exception.LumifyException;
import io.lumify.core.util.ClassUtil;
public class TranslateBootstrapBindingProvider implements BootstrapBindingProvider {
private static final String CONFIG_TRANSLATOR_CLASS_NAME = "translate.translator";
@Override
public void addBindings(Binder binder, Configuration configuration) {
String translatorClassName = configuration.get(CONFIG_TRANSLATOR_CLASS_NAME, NopTranslator.class.getName());
try {
Class<? extends Translator> translatorClass = ClassUtil.forName(translatorClassName);
binder.bind(Translator.class)
.to(translatorClass)
.in(Scopes.SINGLETON);
} catch (Exception ex) {
throw new LumifyException("Could not bind translator: " + translatorClassName, ex);
}
}
}