javax.enterprise.inject.spi.Decorator类的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(11.9k)|赞(0)|评价(0)|浏览(143)

本文整理了Java中javax.enterprise.inject.spi.Decorator类的一些代码示例,展示了Decorator类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Decorator类的具体详情如下:
包路径:javax.enterprise.inject.spi.Decorator
类名称:Decorator

Decorator介绍

[英]Decorator Bean.
[中]装饰豆。

代码示例

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

  1. protected void checkDecorator(Decorator<?> decorator, Class<?> beanClass, Set<Type> decoratedTypes, Type delegateType) {
  2. assertEquals(decorator.getBeanClass(), beanClass);
  3. assertEquals(decorator.getDecoratedTypes(), decoratedTypes);
  4. assertEquals(decorator.getDelegateType(), delegateType);
  5. }

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

  1. @SuppressWarnings("unchecked")
  2. @Test
  3. @SpecAssertions({ @SpecAssertion(section = DELEGATE_ATTRIBUTE, id = "a"), @SpecAssertion(section = DECORATOR, id = "c") })
  4. public void testDelegateInjectionPoint() {
  5. List<Decorator<?>> decorators = getCurrentManager().resolveDecorators(Logger.TYPES);
  6. assertEquals(decorators.size(), 1);
  7. Decorator<?> decorator = decorators.get(0);
  8. assertEquals(decorator.getInjectionPoints().size(), 1);
  9. assertEquals(decorator.getInjectionPoints().iterator().next().getType(),Logger.class);
  10. assertTrue(decorator.getInjectionPoints().iterator().next().getAnnotated().isAnnotationPresent(Delegate.class));
  11. assertEquals(decorator.getDelegateType(), Logger.class);
  12. assertEquals(decorator.getDelegateQualifiers().size(), 1);
  13. assertAnnotationSetMatches(decorator.getDelegateQualifiers(), Default.class);
  14. }

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. private void validateDecorator(Decorator<?> decorator) {
  2. Set<Annotation> qualifiers = decorator.getDelegateQualifiers();
  3. if (decorator.getDelegateType() == null) {
  4. throw BeanLogger.LOG.decoratorMethodReturnsNull("getDelegateType", decorator);
  5. }
  6. Bindings.validateQualifiers(qualifiers, getBeanManager(), decorator, "Decorator.getDelegateQualifiers");
  7. if (decorator.getDecoratedTypes() == null) {
  8. throw BeanLogger.LOG.decoratorMethodReturnsNull("getDecoratedTypes", decorator);
  9. }
  10. }

代码示例来源:origin: weld/core

  1. /**
  2. * Check whether the delegate type implements or extends all decorated types.
  3. *
  4. * @param decorator
  5. * @throws DefinitionException If the delegate type doesn't implement or extend all decorated types
  6. */
  7. public static void checkDelegateType(Decorator<?> decorator) {
  8. Set<Type> types = new HierarchyDiscovery(decorator.getDelegateType()).getTypeClosure();
  9. for (Type decoratedType : decorator.getDecoratedTypes()) {
  10. if(!types.contains(decoratedType)) {
  11. throw BeanLogger.LOG.delegateMustSupportEveryDecoratedType(decoratedType, decorator);
  12. }
  13. }
  14. }

代码示例来源:origin: weld/core

  1. public static void checkBeanMetadataInjectionPoint(Object bean, InjectionPoint ip, Type expectedTypeArgument) {
  2. if (!(ip.getType() instanceof ParameterizedType)) {
  3. throw ValidatorLogger.LOG.invalidBeanMetadataInjectionPointType(ip.getType(), ip, Formats.formatAsStackTraceElement(ip));
  4. ParameterizedType parameterizedType = (ParameterizedType) ip.getType();
  5. if (parameterizedType.getActualTypeArguments().length != 1) {
  6. throw ValidatorLogger.LOG.invalidBeanMetadataInjectionPointType(ip.getType(), ip, Formats.formatAsStackTraceElement(ip));
  7. throw ValidatorLogger.LOG.injectionIntoNonBean(ip, Formats.formatAsStackTraceElement(ip));
  8. throw ValidatorLogger.LOG.invalidBeanMetadataInjectionPointType(ip.getType(), ip, Formats.formatAsStackTraceElement(ip));
  9. if (!typeArgument.equals(decorator.getDelegateType())) {
  10. throw ValidatorLogger.LOG.invalidBeanMetadataInjectionPointTypeArgument(typeArgument, ip, Formats.formatAsStackTraceElement(ip));

代码示例来源:origin: org.apache.openwebbeans/openwebbeans-impl

  1. for (InjectionPoint injectionPoint : injectionPoints)
  2. if (injectionPoint.getAnnotated().isAnnotationPresent(Decorated.class))
  3. else if (injectionPoint.getAnnotated().isAnnotationPresent(Intercepted.class))
  4. rawType.equals(Interceptor.class))
  5. Type[] types = ClassUtil.getActualTypeArguments(injectionPoint.getType());
  6. if (types.length != 1 || !GenericsUtil.isAssignableFrom(false, AbstractProducerBean.class.isInstance(bean), bean.getBeanClass(), types[0]))
  7. if (!abstractMethods.isEmpty())
  8. Set<Type> types = ((javax.enterprise.inject.spi.Decorator) bean).getDecoratedTypes();
  9. for (Method abstractMethod : abstractMethods)

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. protected void validateDecorator(Decorator<?> decorator, Collection<CommonBean<?>> specializedBeans, BeanManagerImpl manager) {
  2. if (decorator.getDecoratedTypes().isEmpty()) {
  3. throw ValidatorLogger.LOG.noDecoratedTypes(decorator);
  4. if (!decorator.getScope().equals(Dependent.class)) {
  5. throw ValidatorLogger.LOG.interceptorOrDecoratorMustBeDependent(decorator);
  6. Decorators.checkDelegateType(decorator);
  7. Type delegateType = decorator.getDelegateType();
  8. if (delegateType instanceof ParameterizedType) {
  9. ParameterizedType parameterizedDelegateType = (ParameterizedType) delegateType;
  10. if (!Decorators.isPassivationCapable(decorator)) {
  11. if (Instance.class.equals(parameterizedDelegateType.getRawType()) || Provider.class.equals(parameterizedDelegateType.getRawType())) {
  12. throw ValidatorLogger.LOG.builtinBeanWithNonserializableDecorator(decorator, Instance.class.getName());
  13. validateRIBean((CommonBean<?>) decorator, manager, specializedBeans);
  14. validateGeneralBean(decorator, manager);
  15. Decorators.findDelegateInjectionPoint(annotated, decorator.getInjectionPoints());

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. private void validateDecorators(BeanManagerImpl beanManager, DecorableBean<?> bean) {
  2. if (!(beanManager.isPassivatingScope(bean.getScope()) || bean instanceof AbstractDecorableBuiltInBean<?>)) {
  3. return;
  4. }
  5. List<Decorator<?>> decorators = bean.getDecorators();
  6. if (decorators.isEmpty()) {
  7. return;
  8. }
  9. for (Decorator<?> decorator : decorators) {
  10. if (!Decorators.isPassivationCapable(decorator)) {
  11. if (bean instanceof AbstractDecorableBuiltInBean<?>) {
  12. throw ValidatorLogger.LOG.builtinBeanWithNonserializableDecorator(decorator, bean);
  13. } else {
  14. throw ValidatorLogger.LOG.passivatingBeanWithNonserializableDecorator(bean, decorator);
  15. }
  16. }
  17. if (decorator instanceof DecoratorImpl) {
  18. beanManager = ((DecoratorImpl<?>) decorator).getBeanManager();
  19. }
  20. for (InjectionPoint ij : decorator.getInjectionPoints()) {
  21. if (!ij.isDelegate()) {
  22. Bean<?> resolvedBean = beanManager.resolve(beanManager.getBeans(ij));
  23. validateInterceptorDecoratorInjectionPointPassivationCapable(ij, resolvedBean, beanManager, bean);
  24. }
  25. }
  26. }
  27. }

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

  1. public void testIsDelegate() {
  2. assert !getContextualReference(FieldInjectionPointBean.class).getInjectedBean().getInjectedMetadata().isDelegate();
  3. assert cat.getBeanManager() != null;
  4. assert cat.getInjectionPoint() != null;
  5. assert !cat.getInjectionPoint().isDelegate();
  6. for (Decorator<?> animalDecorator : animalDecorators) {
  7. assert animalDecorator.getInjectionPoints().size() == 2;
  8. for (InjectionPoint injectionPoint : animalDecorator.getInjectionPoints()) {
  9. if (injectionPoint.getType().equals(InjectionPoint.class)) {
  10. assertFalse(injectionPoint.isDelegate());
  11. } else if (injectionPoint.getType().equals(Animal.class)) {

代码示例来源:origin: org.apache.openwebbeans/openwebbeans-impl

  1. private void validateDecorated(Bean<?> bean, boolean isDecorator, InjectionPoint injectionPoint)
  2. {
  3. if (isDecorator)
  4. {
  5. Type[] types = ClassUtil.getActualTypeArguments(injectionPoint.getType());
  6. if (types.length != 1 ||
  7. !((javax.enterprise.inject.spi.Decorator) bean).getDecoratedTypes().contains(types[0]))
  8. {
  9. throw new WebBeansConfigurationException("ParametrizedType must be a DecoratedTyp at InjectionPoint " + injectionPoint);
  10. }
  11. }
  12. else
  13. {
  14. throw new WebBeansConfigurationException(injectionPoint.getBean().getBeanClass() + " must be a Decorator");
  15. }
  16. }

代码示例来源:origin: com.caucho/resin

  1. Object instance = manager.getReference(bean, bean.getBeanClass(), env);
  2. if (ip.getMember() instanceof Field) {
  3. Field field = (Field) ip.getMember();
  4. field.setAccessible(true);
  5. throw new InjectionException(e);
  6. } else if (ip.getMember() instanceof Method) {
  7. Method method = (Method) ip.getMember();
  8. method.setAccessible(true);

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. if (BeanKind.INTERCEPTOR.equals(kind) || BeanKind.DECORATOR.equals(kind) || bean.isAlternative()) {
  2. JsonObjectBuilder enablementBuilder = Json.objectBuilder();
  3. AnnotationApiAbstraction annotationApi = beanManager.getServices().get(AnnotationApiAbstraction.class);
  4. Object priority = bean.getBeanClass().getAnnotation(annotationApi.PRIORITY_ANNOTATION_CLASS);
  5. if (priority != null) {
  6. Collection<BeanManagerImpl> beanManagers = Container.instance(beanManager).beanDeploymentArchives().values();
  7. for (BeanManagerImpl manager : beanManagers) {
  8. ModuleEnablement enablement = manager.getEnabled();
  9. if ((BeanKind.INTERCEPTOR.equals(kind) && enablement.isInterceptorEnabled(bean.getBeanClass()))
  10. || (BeanKind.DECORATOR.equals(kind) && enablement.isDecoratorEnabled(bean.getBeanClass()))
  11. || isSelectedAlternative(enablement, bean)) {
  12. bdasBuilder.add(createSimpleBdaJson(manager.getId()));
  13. beanBuilder.add(DELEGATE_TYPE, Formats.formatType(decorator.getDelegateType(), false));
  14. beanBuilder.add(DELEGATE_QUALIFIERS, createQualifiers(decorator.getDelegateQualifiers(), false));
  15. JsonArrayBuilder decoratedTypes = Json.arrayBuilder(true);
  16. for (Type type : decorator.getDecoratedTypes()) {
  17. decoratedTypes.add(Formats.formatType(type, false));

代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl

  1. @Test
  2. @SpecAssertions({ @SpecAssertion(section = INJECTION_POINT_CONFIGURATOR, id = "bc"),
  3. @SpecAssertion(section = INJECTION_POINT_CONFIGURATOR, id = "be")
  4. })
  5. public void replaceQualifiersAndDelegate() {
  6. List<Decorator<?>> vehicleDecorators = getCurrentManager().resolveDecorators(Collections.<Type>singleton(Car.class), Driving.DrivingLiteral.INSTANCE);
  7. assertEquals(vehicleDecorators.size(), 1);
  8. Decorator<Car> vehicleDecorator = (Decorator<Car>) vehicleDecorators.get(0);
  9. assertEquals(vehicleDecorator.getInjectionPoints().size(), 1);
  10. InjectionPoint vehicleIp = vehicleDecorator.getInjectionPoints().iterator().next();
  11. assertEquals(vehicleIp.isDelegate(), true);
  12. assertEquals(vehicleIp.getQualifiers(), Collections.singleton(Driving.DrivingLiteral.INSTANCE));
  13. }

代码示例来源:origin: weld/core

  1. @Override
  2. protected boolean matches(Resolvable resolvable, Decorator<?> bean) {
  3. return rules.matches(Collections.singleton(bean.getDelegateType()), resolvable.getTypes())
  4. && Beans.containsAllQualifiers(QualifierInstance.of(bean.getDelegateQualifiers(), getStore()), resolvable.getQualifiers())
  5. && getBeanManager().getEnabled().isDecoratorEnabled(bean.getBeanClass());
  6. }

代码示例来源:origin: weld/core

  1. private CustomDecoratorWrapper(Decorator<T> delegate, BeanManagerImpl beanManager) {
  2. this.delegate = delegate;
  3. this.weldClass = beanManager.getServices().get(ClassTransformer.class).getEnhancedAnnotatedType(Reflections.<Class<T>>cast(delegate.getBeanClass()), beanManager.getId());
  4. this.decoratedMethods = new DecoratedMethods(beanManager, this);
  5. }

代码示例来源:origin: weld/core

  1. private void validateEnabledDecoratorClasses(BeanManagerImpl beanManager, BeanDeployment deployment) {
  2. BeansXml beansXml = deployment.getBeanDeploymentArchive().getBeansXml();
  3. if (beansXml != null && !beansXml.getEnabledDecorators().isEmpty()) {
  4. Set<String> decoratorBeanClasses = new HashSet<String>();
  5. for (Decorator<?> bean : beanManager.getDynamicAccessibleDecorators()) {
  6. decoratorBeanClasses.add(bean.getBeanClass().getName());
  7. }
  8. for (Metadata<String> decoratorClassName : beansXml.getEnabledDecorators()) {
  9. if (!decoratorBeanClasses.contains(decoratorClassName.getValue())) {
  10. throw ValidatorLogger.LOG.decoratorClassNotBeanClassOfDecorator(decoratorClassName.getValue(), WeldCollections.toMultiRowString(decoratorBeanClasses));
  11. }
  12. }
  13. }
  14. }

代码示例来源:origin: com.caucho/resin

  1. private static InjectionPoint getDelegate(Decorator<?> bean)
  2. {
  3. if (bean instanceof DecoratorBean)
  4. return ((DecoratorBean) bean).getDelegateInjectionPoint();
  5. for (InjectionPoint ip : bean.getInjectionPoints()) {
  6. if (ip.isDelegate())
  7. return ip;
  8. }
  9. throw new IllegalStateException(String.valueOf(bean));
  10. }

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. @Override
  2. public Set<Type> getDecoratedTypes() {
  3. return delegate().getDecoratedTypes();
  4. }

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. @Override
  2. public Type getDelegateType() {
  3. return delegate().getDelegateType();
  4. }

代码示例来源:origin: org.jboss.weld.se/weld-se

  1. @Override
  2. public Set<Annotation> getDelegateQualifiers() {
  3. return delegate().getDelegateQualifiers();
  4. }

相关文章