@Override public BeanHolder<B> build(BridgeBuildContext buildContext) { BeanProvider beanProvider = buildContext.getBeanProvider(); return beanReference.getBean( beanProvider ); } }
@Override public BeanHolder<B> build(BridgeBuildContext buildContext) { BeanProvider beanProvider = buildContext.getBeanProvider(); return beanReference.getBean( beanProvider ); } }
/** * Retrieve a bean from a {@link BeanReference}. * <p> * This method is just syntactic sugar to allow to write {@code bridgeProvider::getBean} * and get a {@code Function<BeanReference<T>, T>} that can be used in {@link java.util.Optional#map(Function)} * for instance. * * @param <T> The expected return type. * @param reference The reference to the bean to retrieve. Must be non-null. * @return A {@link BeanHolder} containing the resolved bean. * @throws SearchException if the reference is invalid (null or empty) or the bean cannot be resolved. */ default <T> BeanHolder<T> getBean(BeanReference<T> reference) { Contracts.assertNotNull( reference, "reference" ); return reference.getBean( this ); }
/** * Retrieve a bean from a {@link BeanReference}. * <p> * This method is just syntactic sugar to allow to write {@code bridgeProvider::getBean} * and get a {@code Function<BeanReference<T>, T>} that can be used in {@link java.util.Optional#map(Function)} * for instance. * * @param <T> The expected return type. * @param reference The reference to the bean to retrieve. Must be non-null. * @return A {@link BeanHolder} containing the resolved bean. * @throws SearchException if the reference is invalid (null or empty) or the bean cannot be resolved. */ default <T> BeanHolder<T> getBean(BeanReference<T> reference) { Contracts.assertNotNull( reference, "reference" ); return reference.getBean( this ); }
@Override @SuppressWarnings("unchecked") // Checked using reflection public BeanHolder<T> getBean(BeanProvider beanProvider) { BeanHolder<?> beanHolder = casted.getBean( beanProvider ); try { // Just let the type throw an exception if something is wrong expectedType.cast( beanHolder.get() ); // The instance can safely be cast to the expected type, so we can safely do this return (BeanHolder<T>) beanHolder; } catch (Exception e) { new SuppressingCloser( e ).push( beanHolder ); throw e; } }
@Override @SuppressWarnings("unchecked") // Checked using reflection public BeanHolder<T> getBean(BeanProvider beanProvider) { BeanHolder<?> beanHolder = casted.getBean( beanProvider ); try { // Just let the type throw an exception if something is wrong expectedType.cast( beanHolder.get() ); // The instance can safely be cast to the expected type, so we can safely do this return (BeanHolder<T>) beanHolder; } catch (Exception e) { new SuppressingCloser( e ).push( beanHolder ); throw e; } }
@Override public BeanHolder<? extends B> build(BridgeBuildContext buildContext) { BeanHolder<?> bridgeHolder; try ( BeanHolder<? extends BridgeBuilder> delegateHolder = delegateReference.getBean( buildContext.getBeanProvider() ) ) { bridgeHolder = delegateHolder.get().build( buildContext ); } expectedBridgeType.cast( bridgeHolder.get() ); @SuppressWarnings( "unchecked" ) // The cast above is enough, since BeanHolder must return the same instance for each call to get() BeanHolder<? extends B> castedBridgeHolder = (BeanHolder<? extends B>) bridgeHolder; return castedBridgeHolder; }
@Override public BeanHolder<? extends B> build(BridgeBuildContext buildContext) { BeanHolder<?> bridgeHolder; try ( BeanHolder<? extends BridgeBuilder> delegateHolder = delegateReference.getBean( buildContext.getBeanProvider() ) ) { bridgeHolder = delegateHolder.get().build( buildContext ); } expectedBridgeType.cast( bridgeHolder.get() ); @SuppressWarnings( "unchecked" ) // The cast above is enough, since BeanHolder must return the same instance for each call to get() BeanHolder<? extends B> castedBridgeHolder = (BeanHolder<? extends B>) bridgeHolder; return castedBridgeHolder; }
try { for ( BeanReference<? extends T> reference : references ) { beanHolders.add( reference.getBean( this ) );
try { for ( BeanReference<? extends T> reference : references ) { beanHolders.add( reference.getBean( this ) );
@Override public Object build(MarkerBuildContext buildContext) { try ( BeanHolder<? extends AnnotationMarkerBuilder> delegateHolder = delegateReference.getBean( buildContext.getBeanProvider() ) ) { /* * TODO HSEARCH-3077 make this raw type use safer by checking the generic parameters of delegate.getClass() somehow, * maybe in a similar way to what we do in PojoIndexModelBinderImpl#addValueBridge, * and throwing an exception with a detailed explanation if something is wrong. */ delegateHolder.get().initialize( annotation ); return delegateHolder.get().build( buildContext ); } }
@Override public Object build(MarkerBuildContext buildContext) { try ( BeanHolder<? extends AnnotationMarkerBuilder> delegateHolder = delegateReference.getBean( buildContext.getBeanProvider() ) ) { /* * TODO HSEARCH-3077 make this raw type use safer by checking the generic parameters of delegate.getClass() somehow, * maybe in a similar way to what we do in PojoIndexModelBinderImpl#addValueBridge, * and throwing an exception with a detailed explanation if something is wrong. */ delegateHolder.get().initialize( annotation ); return delegateHolder.get().build( buildContext ); } }
@Override public BeanHolder<? extends B> build(BridgeBuildContext buildContext) { BeanHolder<?> bridgeHolder; try ( BeanHolder<? extends AnnotationBridgeBuilder> delegateHolder = delegateReference.getBean( buildContext.getBeanProvider() ) ) { /* * TODO HSEARCH-3077 make this raw type use safer by checking the generic parameters of delegate.getClass() somehow, * maybe in a similar way to what we do in PojoIndexModelBinderImpl#addValueBridge, * and throwing an exception with a detailed explanation if something is wrong. */ delegateHolder.get().initialize( annotation ); bridgeHolder = delegateHolder.get().build( buildContext ); } expectedBridgeType.cast( bridgeHolder.get() ); @SuppressWarnings( "unchecked" ) // The cast above is enough, since BeanHolder must return the same instance for each call to get() BeanHolder<? extends B> castedBridgeHolder = (BeanHolder<? extends B>) bridgeHolder; return castedBridgeHolder; }
@Override public BeanHolder<? extends B> build(BridgeBuildContext buildContext) { BeanHolder<?> bridgeHolder; try ( BeanHolder<? extends AnnotationBridgeBuilder> delegateHolder = delegateReference.getBean( buildContext.getBeanProvider() ) ) { /* * TODO HSEARCH-3077 make this raw type use safer by checking the generic parameters of delegate.getClass() somehow, * maybe in a similar way to what we do in PojoIndexModelBinderImpl#addValueBridge, * and throwing an exception with a detailed explanation if something is wrong. */ delegateHolder.get().initialize( annotation ); bridgeHolder = delegateHolder.get().build( buildContext ); } expectedBridgeType.cast( bridgeHolder.get() ); @SuppressWarnings( "unchecked" ) // The cast above is enough, since BeanHolder must return the same instance for each call to get() BeanHolder<? extends B> castedBridgeHolder = (BeanHolder<? extends B>) bridgeHolder; return castedBridgeHolder; }