Refine search
HandlerImpl(Supplier<T> supplier, WeldInstance<T> instance, Bean<?> bean) { this.value = LazyValueHolder.forSupplier(supplier); this.bean = bean; this.instance = new WeakReference<>(instance); this.isDestroyed = new AtomicBoolean(false); }
@Override public T get() { if (!value.isAvailable() && instance.get() == null) { // Contextual reference cannot be obtained if the producing Instance does not exist throw BeanLogger.LOG.cannotObtainHandlerContextualReference(this); } return value.get(); }
protected Resolvable buildEventResolvable(Type eventType, Annotation... qualifiers) { // We can always cache as this is only ever called by Weld where we avoid non-static inner classes for annotation literals return new ResolvableBuilder(resolver.getMetaAnnotationStore()) .addTypes(sharedObjectCache.getTypeClosureHolder(eventType).get()) .addType(Object.class) .addQualifiers(qualifiers) .addQualifierUnchecked(QualifierInstance.ANY) .create(); }
this.weldELResolver = services.getOptional(ExpressionLanguageSupport.class).map(el -> el.createElResolver(this)).orElse(null); TypeSafeObserverResolver accessibleObserverResolver = new TypeSafeObserverResolver(getServices().get(MetaAnnotationStore.class), createDynamicAccessibleIterable(BeanManagerImpl::getObservers), getServices().get(WeldConfiguration.class)); this.accessibleLenientObserverNotifier = getServices().get(ObserverNotifierFactory.class).create(contextId, accessibleObserverResolver, getServices(), this.currentInjectionPoint = getServices().get(CurrentInjectionPoint.class); this.clientProxyOptimization = getServices().get(WeldConfiguration.class).getBooleanProperty(ConfigurationKey.INJECTABLE_REFERENCE_OPTIMIZATION); this.requestInitializedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, Initialized.Literal.REQUEST)); this.requestBeforeDestroyedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, BeforeDestroyed.Literal.REQUEST)); this.requestDestroyedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, Destroyed.Literal.REQUEST));
@Override protected Namespace getRootNamespace() { return rootNamespace.get(); }
public T get() { T valueCopy = value; if (valueCopy != null) { return valueCopy; } synchronized (this) { if (value == null) { value = computeValue(); } return value; } }
ReentrantMapBackedComputingCache(Function<K, V> computingFunction, Long maxSize) { this(computingFunction, LazyValueHolder.<V>forValue(), maxSize); }
@Override public T get() { if (!value.isAvailable() && instance.get() == null) { // Contextual reference cannot be obtained if the producing Instance does not exist throw BeanLogger.LOG.cannotObtainHandlerContextualReference(this); } return value.get(); }
protected Resolvable buildEventResolvable(Type eventType, Set<Annotation> qualifiers) { // We can always cache as this is only ever called by Weld where we avoid non-static inner classes for annotation literals Set<Type> typeClosure = sharedObjectCache.getTypeClosureHolder(eventType).get(); return new ResolvableBuilder(resolver.getMetaAnnotationStore()) .addTypes(typeClosure) .addType(Object.class) .addQualifiers(qualifiers) .addQualifierUnchecked(QualifierInstance.ANY) .create(); }
this.weldELResolver = services.getOptional(ExpressionLanguageSupport.class).map(el -> el.createElResolver(this)).orElse(null); TypeSafeObserverResolver accessibleObserverResolver = new TypeSafeObserverResolver(getServices().get(MetaAnnotationStore.class), createDynamicAccessibleIterable(BeanManagerImpl::getObservers), getServices().get(WeldConfiguration.class)); this.accessibleLenientObserverNotifier = getServices().get(ObserverNotifierFactory.class).create(contextId, accessibleObserverResolver, getServices(), this.currentInjectionPoint = getServices().get(CurrentInjectionPoint.class); this.clientProxyOptimization = getServices().get(WeldConfiguration.class).getBooleanProperty(ConfigurationKey.INJECTABLE_REFERENCE_OPTIMIZATION); this.requestInitializedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, Initialized.Literal.REQUEST)); this.requestBeforeDestroyedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, BeforeDestroyed.Literal.REQUEST)); this.requestDestroyedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, Destroyed.Literal.REQUEST));
@Override protected Namespace getRootNamespace() { return rootNamespace.get(); }
public T get() { T valueCopy = value; if (valueCopy != null) { return valueCopy; } synchronized (this) { if (value == null) { value = computeValue(); } return value; } }
@Override public T get() { if (!value.isAvailable() && instance.get() == null) { // Contextual reference cannot be obtained if the producing Instance does not exist throw BeanLogger.LOG.cannotObtainHandlerContextualReference(this); } return value.get(); }
protected Resolvable buildEventResolvable(Type eventType, Annotation... qualifiers) { // We can always cache as this is only ever called by Weld where we avoid non-static inner classes for annotation literals return new ResolvableBuilder(resolver.getMetaAnnotationStore()).addTypes(sharedObjectCache.getTypeClosureHolder(eventType).get()).addType(Object.class) .addQualifiers(qualifiers).addQualifierUnchecked(QualifierInstance.ANY).create(); }
this.weldELResolver = services.getOptional(ExpressionLanguageSupport.class).map(el -> el.createElResolver(this)).orElse(null); TypeSafeObserverResolver accessibleObserverResolver = new TypeSafeObserverResolver(getServices().get(MetaAnnotationStore.class), createDynamicAccessibleIterable(BeanManagerImpl::getObservers), getServices().get(WeldConfiguration.class)); this.accessibleLenientObserverNotifier = getServices().get(ObserverNotifierFactory.class).create(contextId, accessibleObserverResolver, getServices(), this.currentInjectionPoint = getServices().get(CurrentInjectionPoint.class); this.clientProxyOptimization = getServices().get(WeldConfiguration.class).getBooleanProperty(ConfigurationKey.INJECTABLE_REFERENCE_OPTIMIZATION); this.requestInitializedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, Initialized.Literal.REQUEST)); this.requestBeforeDestroyedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, BeforeDestroyed.Literal.REQUEST)); this.requestDestroyedEvent = LazyValueHolder.forSupplier(() -> FastEvent.of(Object.class, this, Destroyed.Literal.REQUEST));
@Override protected Namespace getRootNamespace() { return rootNamespace.get(); }
HandlerImpl(Supplier<T> supplier, WeldInstance<T> instance, Bean<?> bean) { this.value = LazyValueHolder.forSupplier(supplier); this.bean = bean; this.instance = new WeakReference<>(instance); this.isDestroyed = new AtomicBoolean(false); }