private <T> T createClientProxy(BeanInstance beanInstance, String contextId) { ProxyFactory<T> factory = new ProxyFactory<>(contextId, getBeanClass(), getTypes(), this); return factory.create(beanInstance); }
@Override public Object invoke(Object obj, Method method, Object... arguments) throws Throwable { Object instance = instances.computeIfAbsent(Thread.currentThread(), thread -> supplier.get()); return super.invoke(instance, method, arguments); }
private void checkNoArgsConstructor(EnhancedAnnotatedType<T> type) { if (!beanManager.getServices().get(ProxyInstantiator.class).isUsingConstructor()) { return; } EnhancedAnnotatedConstructor<T> constructor = type.getNoArgsEnhancedConstructor(); if (constructor == null) { throw BeanLogger.LOG.decoratedHasNoNoargsConstructor(this); } else if (constructor.isPrivate()) { throw BeanLogger.LOG .decoratedNoargsConstructorIsPrivate(this, Formats.formatAsStackTraceElement(constructor.getJavaMember())); } }
@Override protected boolean isMethodAccepted(Method method, Class<?> proxySuperclass) { return super.isMethodAccepted(method, proxySuperclass) && CommonProxiedMethodFilters.NON_PRIVATE.accept(method, proxySuperclass); } }
/** * Convenience method to set the underlying bean instance for a proxy. * * @param proxy the proxy instance * @param beanInstance the instance of the bean */ public static <T> void setBeanInstance(String contextId, T proxy, BeanInstance beanInstance, Bean<?> bean) { if (proxy instanceof ProxyObject) { ProxyObject proxyView = (ProxyObject) proxy; proxyView.weld_setHandler(new ProxyMethodHandler(contextId, beanInstance, bean)); } }
/** * @return {@code true} if {@link #CONSTRUCTED_FLAG_NAME} should be used */ private boolean useConstructedFlag() { return !isUsingProxyInstantiator() || proxyInstantiator.isUsingConstructor(); }
@Override protected void addMethods(ClassFile proxyClassType, ClassMethod staticConstructor) { // delegate to ProxyFactory#addMethods super.addMethods(proxyClassType, staticConstructor); // add method from WeldClientProxy generateWeldClientProxyMethod(proxyClassType); }
/** * Convenience method to set the underlying bean instance for a proxy. * * @param proxy the proxy instance * @param beanInstance the instance of the bean */ public static <T> void setBeanInstance(String contextId, T proxy, BeanInstance beanInstance, Bean<?> bean) { if (proxy instanceof ProxyObject) { ProxyObject proxyView = (ProxyObject) proxy; proxyView.setHandler(new ProxyMethodHandler(contextId, beanInstance, bean)); } }
@Override protected boolean isMethodAccepted(Method method, Class<?> proxySuperclass) { return super.isMethodAccepted(method, proxySuperclass) && CommonProxiedMethodFilters.NON_PRIVATE.accept(method, proxySuperclass); } }
/** * Convenience method to set the underlying bean instance for a proxy. * * @param proxy the proxy instance * @param beanInstance the instance of the bean */ public static <T> void setBeanInstance(String contextId, T proxy, BeanInstance beanInstance, Bean<?> bean) { if (proxy instanceof ProxyObject) { ProxyObject proxyView = (ProxyObject) proxy; proxyView.weld_setHandler(new ProxyMethodHandler(contextId, beanInstance, bean)); } }
/** * @return {@code true} if {@link #CONSTRUCTED_FLAG_NAME} should be used */ private boolean useConstructedFlag() { return !isUsingProxyInstantiator() || proxyInstantiator.isUsingConstructor(); }
@Override protected void addMethods(ClassFile proxyClassType, ClassMethod staticConstructor) { // delegate to ProxyFactory#addMethods super.addMethods(proxyClassType, staticConstructor); // add method from WeldClientProxy generateWeldClientProxyMethod(proxyClassType); }
@Override protected boolean isMethodAccepted(Method method, Class<?> proxySuperclass) { return super.isMethodAccepted(method, proxySuperclass) && CommonProxiedMethodFilters.NON_PRIVATE.accept(method, proxySuperclass); } }
/** * Convenience method to set the underlying bean instance for a proxy. * * @param proxy the proxy instance * @param beanInstance the instance of the bean */ public static <T> void setBeanInstance(String contextId, T proxy, BeanInstance beanInstance, Bean<?> bean) { if (proxy instanceof ProxyObject) { ProxyObject proxyView = (ProxyObject) proxy; proxyView.weld_setHandler(new ProxyMethodHandler(contextId, beanInstance, bean)); } }
/** * @return {@code true} if {@link #CONSTRUCTED_FLAG_NAME} should be used */ private boolean useConstructedFlag() { return !isUsingProxyInstantiator() || proxyInstantiator.isUsingConstructor(); }
@Override protected void addMethods(ClassFile proxyClassType, ClassMethod staticConstructor) { // delegate to ProxyFactory#addMethods super.addMethods(proxyClassType, staticConstructor); // add method from WeldClientProxy generateWeldClientProxyMethod(proxyClassType); }
@Override protected boolean isMethodAccepted(Method method, Class<?> proxySuperclass) { return super.isMethodAccepted(method, proxySuperclass) && CommonProxiedMethodFilters.NON_PRIVATE.accept(method, proxySuperclass); } }
/** * Convenience method to set the underlying bean instance for a proxy. * * @param proxy the proxy instance * @param beanInstance the instance of the bean */ public static <T> void setBeanInstance(String contextId, T proxy, BeanInstance beanInstance, Bean<?> bean) { if (proxy instanceof ProxyObject) { ProxyObject proxyView = (ProxyObject) proxy; proxyView.weld_setHandler(new ProxyMethodHandler(contextId, beanInstance, bean)); } }
@Override protected void addMethods(ClassFile proxyClassType, ClassMethod staticConstructor) { // delegate to ProxyFactory#addMethods super.addMethods(proxyClassType, staticConstructor); // add method from WeldClientProxy generateWeldClientProxyMethod(proxyClassType); }
@Override protected boolean isMethodAccepted(Method method, Class<?> proxySuperclass) { return super.isMethodAccepted(method, proxySuperclass) && CommonProxiedMethodFilters.NON_PRIVATE.accept(method, proxySuperclass); } }