private < P extends Annotation > InjectionBinding < ? > addOrMergeOverrideInjectionBinding ( Class < ? > instanceClass , Member member , A annotation , String jndiName ) // d675843.2 throws InjectionException { @ SuppressWarnings ( "unchecked" ) InjectionProcessor < P , ? > processor = ( InjectionProcessor < P , ? > ) ivOverrideProcessor ; if ( processor != null ) { // This logic is the same as addOrMergeInjectionBinding, except it // uses OverrideInjectionProcessor methods to create and merge // injection bindings rather than InjectionProcessor and // InjectionBinding methods. InjectionBinding < P > injectionBinding = processor . getInjectionBindingForAnnotation ( jndiName ) ; @ SuppressWarnings ( "unchecked" ) OverrideInjectionProcessor < P , A > overrideProcessor = ( OverrideInjectionProcessor < P , A > ) processor ; if ( injectionBinding == null ) { injectionBinding = overrideProcessor . createOverrideInjectionBinding ( instanceClass , member , annotation , jndiName ) ; if ( injectionBinding != null ) { processor . updateInjectionBinding ( jndiName , injectionBinding ) ; processor . addInjectionBinding ( injectionBinding ) ; return injectionBinding ; } } else { overrideProcessor . mergeOverrideInjectionBinding ( instanceClass , member , annotation , injectionBinding ) ; return injectionBinding ; } } return null ; }
Creates and adds a new override injection binding or merges the data in an annotation with an existing override injection binding .