core/src/com/google/inject/internal/ProvisionListenerCallbackStore.java
@SuppressWarnings(
      "unchecked") // the ProvisionListenerStackCallback type always agrees with the passed type
  public <T> ProvisionListenerStackCallback<T> get(Binding<T> binding) {
    // Never notify any listeners for internal bindings.
    if (!INTERNAL_BINDINGS.contains(binding.getKey())) {
      ProvisionListenerStackCallback<T> callback =
          (ProvisionListenerStackCallback<T>)
              cache.getUnchecked(new KeyBinding(binding.getKey(), binding));
      return callback.hasListeners() ? callback : null;
    }
    return null;
  }
@SuppressWarnings(
      "unchecked") // the ProvisionListenerStackCallback type always agrees with the passed type
  public <T> ProvisionListenerStackCallback<T> get(Binding<T> binding) {
    // Never notify any listeners for internal bindings.
    if (!INTERNAL_BINDINGS.contains(binding.getKey())) {
      ProvisionListenerStackCallback<T> callback =
          (ProvisionListenerStackCallback<T>)
              cache.getUnchecked(new KeyBinding(binding.getKey(), binding));
      return callback.hasListeners() ? callback : null;
    }
    return null;
  }
@ SuppressWarnings ( "unchecked" ) // the ProvisionListenerStackCallback type always agrees with the passed type public < T > ProvisionListenerStackCallback < T > get ( Binding < T > binding ) { // Never notify any listeners for internal bindings. if ( ! INTERNAL_BINDINGS . contains ( binding . getKey ( ) ) ) { ProvisionListenerStackCallback < T > callback = ( ProvisionListenerStackCallback < T > ) cache . getUnchecked ( new KeyBinding ( binding . getKey ( ) , binding ) ) ; return callback . hasListeners ( ) ? callback : null ; } return null ; }
Returns a new {@link ProvisionListenerStackCallback} for the key or {@code null} if there are
no listeners
Returns a new {