org.jboss.weld.resolution.QualifierInstance类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.3k)|赞(0)|评价(0)|浏览(74)

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

QualifierInstance介绍

[英]Optimized representation of a qualifier. JDK annotation proxies are slooow, this class provides significantly faster equals/hashCode methods, that also correctly handle non binding attributes.

Note that Weld is using this representation for interceptor bindings as well. See also org.jboss.weld.manager.BeanManagerImpl#resolveInterceptors(javax.enterprise.inject.spi.InterceptionType,java.util.Collection)
[中]限定符的优化表示。JDK注释代理很慢,这个类提供了更快的equals/hashCode方法,这些方法也能正确处理非绑定属性。
请注意,Weld也将此表示法用于拦截器绑定。另见org。jboss。焊接经理BeanManagerImpl#resolveInterceptors(javax.enterprise.inject.spi.InterceptionType,java.util.Collection)

代码示例

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

/**
 * @param annotation
 * @param store
 * @return a new qualifier instance for the given annotation
 */
public static QualifierInstance of(Annotation annotation, MetaAnnotationStore store) {
  Class<? extends Annotation> annotationType = annotation.annotationType();
  if (Any.class == annotationType) {
    return ANY;
  } else if (Default.class == annotationType) {
    return DEFAULT;
  } else if (Named.class == annotationType) {
    Named named = (Named) annotation;
    return new QualifierInstance(annotationType, ImmutableMap.of("value", named.value()));
  } else {
    return new QualifierInstance(annotationType, createValues(annotation, store));
  }
}

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

public static boolean areInterceptorBindingsEquivalent(Annotation qualifier1, Annotation qualifier2, MetaAnnotationStore store) {
  checkInterceptorBinding(qualifier1, store);
  checkInterceptorBinding(qualifier2, store);
  QualifierInstance q1 = QualifierInstance.of(qualifier1, store);
  QualifierInstance q2 = QualifierInstance.of(qualifier2, store);
  return q1.equals(q2);
}

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

public Set<QualifierInstance> extractInterceptorBindingsForQualifierInstance(Iterable<QualifierInstance> annotations) {
  Set<QualifierInstance> foundInterceptionBindingTypes = new HashSet<QualifierInstance>();
  for (QualifierInstance annotation : annotations) {
    if (isInterceptorBinding(annotation.getAnnotationClass())) {
      foundInterceptionBindingTypes.add(annotation);
    }
  }
  return foundInterceptionBindingTypes;
}

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

public static int getQualifierHashCode(Annotation qualifier, MetaAnnotationStore store) {
  checkQualifier(qualifier, store);
  return QualifierInstance.of(qualifier, store).hashCode();
}

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

public static boolean areQualifiersEquivalent(Annotation qualifier1, Annotation qualifier2, MetaAnnotationStore store) {
  checkQualifier(qualifier1, store);
  checkQualifier(qualifier2, store);
  QualifierInstance q1 = QualifierInstance.of(qualifier1, store);
  QualifierInstance q2 = QualifierInstance.of(qualifier2, store);
  return q1.equals(q2);
}

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

@Override
protected boolean matches(Resolvable resolvable, T bean) {
  AssignabilityRules rules = null;
  if (resolvable.isDelegate()) {
    rules = DelegateInjectionPointAssignabilityRules.instance();
  } else {
    rules = BeanTypeAssignabilityRules.instance();
  }
  return rules.matches(resolvable.getTypes(), bean.getTypes())
      && Beans.containsAllQualifiers(resolvable.getQualifiers(), QualifierInstance.of(bean, store));
}

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

public static boolean containsAllInterceptionBindings(Set<Annotation> expectedBindings,
    Set<QualifierInstance> existingBindings, BeanManagerImpl manager) {
  final Set<QualifierInstance> expected = manager.extractInterceptorBindingsForQualifierInstance(QualifierInstance.of(expectedBindings, manager.getServices().get(MetaAnnotationStore.class)));
  return manager.extractInterceptorBindingsForQualifierInstance(existingBindings).containsAll(expected);
}

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

public static int getInterceptorBindingHashCode(Annotation qualifier, MetaAnnotationStore store) {
  checkInterceptorBinding(qualifier, store);
  return QualifierInstance.of(qualifier, store).hashCode();
}

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

private ResolvableBuilder addQualifier(Annotation qualifier, InjectionPoint injectionPoint) {
  QualifierInstance qualifierInstance = QualifierInstance.of(qualifier, store);
  final Class<? extends Annotation> annotationType = qualifierInstance.getAnnotationClass();
  // Handle the @New qualifier special case
  if (annotationType.equals(New.class)) {
    New newQualifier = New.class.cast(qualifier);
    if (newQualifier.value().equals(New.class) && rawType == null) {
      throw new IllegalStateException("Cannot transform @New when there is no known raw type");
    } else if (newQualifier.value().equals(New.class)) {
      qualifier = new NewLiteral(rawType);
      qualifierInstance = QualifierInstance.of(qualifier, store);
    }
  } else if (injectionPoint != null && annotationType.equals(Named.class)) {
    Named named = (Named) qualifier;
    if (named.value().equals("")) {
      // WELD-1739
      // This is an injection point with an @Named qualifier, with no value specified, we need to assume the name of the field in the value
      named = new NamedLiteral(injectionPoint.getMember().getName());
      qualifier = named;
      qualifierInstance = QualifierInstance.of(named, store);
    }
  }
  checkQualifier(qualifier, qualifierInstance, annotationType);
  this.qualifierInstances.add(qualifierInstance);
  this.annotationTypes.add(annotationType);
  return this;
}

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

@Override
public QualifierInstance apply(Annotation key) {
  return QualifierInstance.of(key, metaAnnotationStore);
}

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

return new QualifierInstance(qualifierAnnotationClass, Collections.unmodifiableMap(values));

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

protected void checkQualifier(Annotation qualifier, final QualifierInstance qualifierInstance, Class<? extends Annotation> annotationType) {
  if (!store.getBindingTypeModel(annotationType).isValid()) {
    throw BeanManagerLogger.LOG.invalidQualifier(qualifierInstance);
  }
  if (!annotationType.isAnnotationPresent(Repeatable.class)) {
    for (QualifierInstance checkedQualifier : qualifierInstances) {
      if (annotationType.equals(checkedQualifier.getAnnotationClass())) {
        throw BeanManagerLogger.LOG.duplicateQualifiers(qualifierInstances);
      }
    }
  }
}

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

@Override
protected boolean matches(Resolvable resolvable, T bean) {
  AssignabilityRules rules = null;
  if (resolvable.isDelegate()) {
    rules = DelegateInjectionPointAssignabilityRules.instance();
  } else {
    rules = BeanTypeAssignabilityRules.instance();
  }
  return rules.matches(resolvable.getTypes(), bean.getTypes())
      && Beans.containsAllQualifiers(resolvable.getQualifiers(), QualifierInstance.of(bean, store));
}

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

public static boolean containsAllInterceptionBindings(Set<Annotation> expectedBindings,
    Set<QualifierInstance> existingBindings, BeanManagerImpl manager) {
  final Set<QualifierInstance> expected = manager.extractInterceptorBindingsForQualifierInstance(QualifierInstance.of(expectedBindings, manager.getServices().get(MetaAnnotationStore.class)));
  return expected.isEmpty() ? false : manager.extractInterceptorBindingsForQualifierInstance(existingBindings).containsAll(expected);
}

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

public static boolean areQualifiersEquivalent(Annotation qualifier1, Annotation qualifier2, MetaAnnotationStore store) {
  checkQualifier(qualifier1, store);
  checkQualifier(qualifier2, store);
  QualifierInstance q1 = QualifierInstance.of(qualifier1, store);
  QualifierInstance q2 = QualifierInstance.of(qualifier2, store);
  return q1.equals(q2);
}

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

public static int getQualifierHashCode(Annotation qualifier, MetaAnnotationStore store) {
  checkQualifier(qualifier, store);
  return QualifierInstance.of(qualifier, store).hashCode();
}

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

public static int getInterceptorBindingHashCode(Annotation qualifier, MetaAnnotationStore store) {
  checkInterceptorBinding(qualifier, store);
  return QualifierInstance.of(qualifier, store).hashCode();
}

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

private ResolvableBuilder addQualifier(Annotation qualifier, InjectionPoint injectionPoint) {
  QualifierInstance qualifierInstance = QualifierInstance.of(qualifier, store);
  final Class<? extends Annotation> annotationType = qualifierInstance.getAnnotationClass();
    } else if (newQualifier.value().equals(New.class)) {
      qualifier = New.Literal.of(rawType);
      qualifierInstance = QualifierInstance.of(qualifier, store);
      qualifierInstance = QualifierInstance.of(named, store);

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

@Override
public QualifierInstance apply(Annotation key) {
  return QualifierInstance.of(key, metaAnnotationStore);
}

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

return new QualifierInstance(qualifierAnnotationClass, Collections.unmodifiableMap(values));

相关文章