@@ -290,39 +290,37 @@ public LinkedBindingBuilder<V> addBinding(K key) {
290290 return binder .bind (getKeyForNewValue (key ));
291291 }
292292
293+ @ SuppressWarnings ({"unchecked" , "rawtypes" }) // we use raw Key to link bindings.
293294 @ Override
294295 public void configure (Binder binder ) {
295296 checkConfiguration (!bindingSelection .isInitialized (), "MapBinder was already initialized" );
296297
297298 // Binds a Map<K, Provider<V>>
298- RealProviderMapProvider < K , V > providerMapProvider =
299- new RealProviderMapProvider <> (bindingSelection );
300- binder . bind ( bindingSelection . getProviderMapKey ()). toProvider ( providerMapProvider );
299+ binder
300+ . bind (bindingSelection . getProviderMapKey ())
301+ . toProvider ( new RealProviderMapProvider <>( bindingSelection ) );
301302
302303 // The map this exposes is internally an ImmutableMap, so it's OK to massage
303304 // the guice Provider to jakarta Provider in the value (since Guice provider
304305 // implements jakarta Provider).
305- @ SuppressWarnings ({"unchecked" , "rawtypes" })
306- Provider <Map <K , jakarta .inject .Provider <V >>> jakartaProviderMapProvider =
307- (Provider ) providerMapProvider ;
308306 binder
309307 .bind (bindingSelection .getJakartaProviderMapKey ())
310- .toProvider ( jakartaProviderMapProvider );
308+ .to (( Key ) bindingSelection . getProviderMapKey () );
311309
312- RealMapProvider <K , V > mapProvider = new RealMapProvider <>(bindingSelection );
313310 // Bind Map<K, V> to the provider w/ extension support.
314311 binder
315312 .bind (bindingSelection .getMapKey ())
316- .toProvider (new ExtensionRealMapProvider <>(mapProvider ));
313+ .toProvider (new ExtensionRealMapProvider <>(bindingSelection ));
317314 // Bind Map<K, ? extends V> to the provider w/o the extension support.
318- binder .bind (bindingSelection .getMapOfKeyExtendsValueKey ()).toProvider (mapProvider );
315+ binder
316+ .bind (bindingSelection .getMapOfKeyExtendsValueKey ())
317+ .to ((Key ) bindingSelection .getMapKey ());
319318
320319 // The Map.Entries are all ProviderMapEntry instances which do not allow setValue, so it is
321320 // safe to massage the return type like this
322- @ SuppressWarnings ({"unchecked" , "rawtypes" })
323- Key <Set <Map .Entry <K , jakarta .inject .Provider <V >>>> jakartaEntrySetProviderKey =
324- (Key ) bindingSelection .getEntrySetBinder ().getSetKey ();
325- binder .bind (bindingSelection .getEntrySetJakartaProviderKey ()).to (jakartaEntrySetProviderKey );
321+ binder
322+ .bind (bindingSelection .getEntrySetJakartaProviderKey ())
323+ .to ((Key ) bindingSelection .getEntrySetBinder ().getSetKey ());
326324 }
327325
328326 @ Override
@@ -737,8 +735,14 @@ protected Map<K, Provider<V>> doProvision(InternalContext context, Dependency<?>
737735 }
738736 }
739737
740- private static final class RealMapProvider <K , V >
741- extends RealMapBinderProviderWithDependencies <K , V , Map <K , V >> {
738+ /**
739+ * Implementation of a provider instance for the map that also exposes details about the MapBinder
740+ * using the extension SPI, delegating to another provider instance for non-extension (e.g, the
741+ * actual provider instance info) data.
742+ */
743+ private static final class ExtensionRealMapProvider <K , V >
744+ extends RealMapBinderProviderWithDependencies <K , V , Map <K , V >>
745+ implements ProviderWithExtensionVisitor <Map <K , V >>, MapBinderBinding <Map <K , V >> {
742746 Set <Dependency <?>> dependencies = RealMapBinder .MODULE_DEPENDENCIES ;
743747
744748 /**
@@ -752,14 +756,10 @@ private static final class RealMapProvider<K, V>
752756
753757 private boolean initialized = false ;
754758
755- RealMapProvider (BindingSelection <K , V > bindingSelection ) {
759+ ExtensionRealMapProvider (BindingSelection <K , V > bindingSelection ) {
756760 super (bindingSelection );
757761 }
758762
759- BindingSelection <K , V > getBindingSelection () {
760- return bindingSelection ;
761- }
762-
763763 @ Override
764764 protected void doInitialize (InjectorImpl injector , Errors errors ) throws ErrorsException {
765765 if (initialized ) {
@@ -821,43 +821,11 @@ protected Map<K, V> doProvision(InternalContext context, Dependency<?> dependenc
821821 public Set <Dependency <?>> getDependencies () {
822822 return dependencies ;
823823 }
824- }
825-
826- /**
827- * Implementation of a provider instance for the map that also exposes details about the MapBinder
828- * using the extension SPI, delegating to another provider instance for non-extension (e.g, the
829- * actual provider instance info) data.
830- */
831- private static final class ExtensionRealMapProvider <K , V >
832- extends RealMapBinderProviderWithDependencies <K , V , Map <K , V >>
833- implements ProviderWithExtensionVisitor <Map <K , V >>, MapBinderBinding <Map <K , V >> {
834- final RealMapProvider <K , V > delegate ;
835-
836- ExtensionRealMapProvider (RealMapProvider <K , V > delegate ) {
837- super (delegate .bindingSelection );
838- this .delegate = delegate ;
839- }
840824
841825 BindingSelection <K , V > getBindingSelection () {
842826 return bindingSelection ;
843827 }
844828
845- @ Override
846- protected void doInitialize (InjectorImpl injector , Errors errors ) throws ErrorsException {
847- delegate .doInitialize (injector , errors );
848- }
849-
850- @ Override
851- protected Map <K , V > doProvision (InternalContext context , Dependency <?> dependency )
852- throws InternalProvisionException {
853- return delegate .doProvision (context , dependency );
854- }
855-
856- @ Override
857- public Set <Dependency <?>> getDependencies () {
858- return delegate .getDependencies ();
859- }
860-
861829 @ Override
862830 @ SuppressWarnings ("unchecked" )
863831 public <B , W > W acceptExtensionVisitor (
@@ -1041,42 +1009,34 @@ private MultimapBinder(BindingSelection<K, V> bindingSelection) {
10411009 this .bindingSelection = bindingSelection ;
10421010 }
10431011
1012+ @ SuppressWarnings ({"unchecked" , "rawtypes" }) // we use raw Key to link bindings together.
10441013 @ Override
10451014 public void configure (Binder binder ) {
10461015 // Binds a Map<K, Set<Provider<V>>>
1047- Provider < Map < K , Set < Provider < V >>>> multimapProvider =
1048- new RealProviderMultimapProvider < K , V > (bindingSelection .getMapKey ());
1049- binder . bind ( bindingSelection .getProviderSetMultimapKey ()). toProvider ( multimapProvider );
1016+ binder
1017+ . bind (bindingSelection .getProviderSetMultimapKey ())
1018+ . toProvider ( new RealProviderMultimapProvider < K , V >( bindingSelection .getMapKey ()));
10501019
10511020 // Provide links from a few different public keys to the providerMultimapKey.
10521021 // The collection this exposes is internally an ImmutableMap, so it's OK to massage
10531022 // the guice Provider to jakarta Provider in the value (since the guice Provider implements
10541023 // jakarta Provider).
1055- @ SuppressWarnings ({"unchecked" , "rawtypes" })
1056- Provider <Map <K , Set <jakarta .inject .Provider <V >>>> jakartaProvider =
1057- (Provider ) multimapProvider ;
10581024 binder
10591025 .bind (bindingSelection .getJakartaProviderSetMultimapKey ())
1060- .toProvider ( jakartaProvider );
1026+ .to (( Key ) bindingSelection . getProviderSetMultimapKey () );
10611027
1062- @ SuppressWarnings ({"unchecked" , "rawtypes" })
1063- Provider <Map <K , Collection <Provider <V >>>> collectionProvider = (Provider ) multimapProvider ;
10641028 binder
10651029 .bind (bindingSelection .getProviderCollectionMultimapKey ())
1066- .toProvider ( collectionProvider );
1030+ .to (( Key ) bindingSelection . getProviderSetMultimapKey () );
10671031
1068- @ SuppressWarnings ({"unchecked" , "rawtypes" })
1069- Provider <Map <K , Collection <jakarta .inject .Provider <V >>>> collectionJakartaProvider =
1070- (Provider ) multimapProvider ;
10711032 binder
10721033 .bind (bindingSelection .getJakartaProviderCollectionMultimapKey ())
1073- .toProvider ( collectionJakartaProvider );
1034+ .to (( Key ) bindingSelection . getProviderSetMultimapKey () );
10741035
10751036 // Binds a Map<K, Set<V>>
1076- @ SuppressWarnings ({"unchecked" , "rawtypes" })
1077- Provider <Map <K , Set <V >>> realMultimapProvider =
1078- new RealMultimapProvider (bindingSelection .getMapKey ());
1079- binder .bind (bindingSelection .getMultimapKey ()).toProvider (realMultimapProvider );
1037+ binder
1038+ .bind (bindingSelection .getMultimapKey ())
1039+ .toProvider (new RealMultimapProvider (bindingSelection .getMapKey ()));
10801040 }
10811041
10821042 @ Override
0 commit comments