// Copyright 2011 Google Inc. All Rights Reserved.
package com.google.gwt.inject.client.multibindings;
import com.google.gwt.inject.client.multibindings.InternalModule.SingletonInternalModule;
import com.google.inject.Key;
import com.google.inject.Singleton;
/**
* A module to bind and expose {@link RuntimeBindingsRegistry} for a multibinding key.
*
* @param <T> type of binding
*/
class RuntimeBindingsRegistryModule<T> extends SingletonInternalModule<T> {
public RuntimeBindingsRegistryModule(Key<T> multibindingKey) {
super(multibindingKey);
}
@SuppressWarnings("unchecked")
@Override
protected void configure() {
// Safe to use unchecked RuntimeBindingsRegistry.class as its new instances are always a valid
// substitution for any RuntimeBindingsRegistry<T>.
bindAndExpose(bindingsRegistry()).to(RuntimeBindingsRegistry.class).in(Singleton.class);
}
}