code: private <A extends Annotation, AS extends Annotation> void addOrMergeInjectionBinding(int processorIndex,
                                                                                            InjectionProcessor<A, AS> processor,
                                                                                            Class<?> klass,
                                                                                            Member member,
                                                                                            A ann)
                      throws InjectionException
      {
          // Lazily create override processors as needed.
          if (ivOverrideIndices != null)
          {
              int overrideIndex = ivOverrideIndices[processorIndex];
              if (overrideIndex != -1)
              {
                  // Create and set the override processor only once.
                  ivOverrideIndices[processorIndex] = -1;
  
                  InjectionProcessor<?, ?> overrideProcessor = getProcessor(overrideIndex, ivProviders.get(overrideIndex));
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      Tr.debug(tc, "adding override processor " + overrideProcessor + " to " + processor);
                  InjectionProcessorContextImpl.setOverrideProcessor(processor, overrideProcessor);
              }
          }
  
          InjectionProcessorContextImpl.addOrMergeInjectionBinding(processor, klass, member, ann);
      }
docs: Creates and adds a new injection binding, or merges the data in an
  annotation with an existing injection binding.