本文整理了Java中javax.enterprise.inject.spi.AnnotatedType
类的一些代码示例,展示了AnnotatedType
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AnnotatedType
类的具体详情如下:
包路径:javax.enterprise.inject.spi.AnnotatedType
类名称:AnnotatedType
[英]Defines alternative meta data for bean class.
[中]定义bean类的可选元数据。
代码示例来源:origin: oracle/helidon
private void recordAnnotatedGaugeSite(@Observes @WithAnnotations(Gauge.class) ProcessAnnotatedType<?> pat) {
LOGGER.log(Level.FINE, () -> "### recordAnnoatedGaugeSite for class " + pat.getAnnotatedType().getJavaClass());
AnnotatedType<?> type = pat.getAnnotatedType();
LOGGER.log(Level.FINE, () -> "### Processing annotations for " + type.getJavaClass().getName());
// Register metrics based on annotations
AnnotatedTypeConfigurator<?> configurator = pat.configureAnnotatedType();
Class<?> clazz = configurator.getAnnotated().getJavaClass();
// If abstract class, then handled by concrete subclasses
if (Modifier.isAbstract(clazz.getModifiers())) {
return;
}
// Process @Gauge methods keeping non-private declared on this class
configurator.filterMethods(method -> method.getJavaMember().getDeclaringClass().equals(clazz)
&& !Modifier.isPrivate(method.getJavaMember().getModifiers())
&& method.isAnnotationPresent(Gauge.class))
.forEach(method -> {
Method javaMethod = method.getAnnotated().getJavaMember();
String explicitGaugeName = method.getAnnotated().getAnnotation(Gauge.class).name();
String gaugeName = String.format("%s.%s", clazz.getName(),
explicitGaugeName != null && explicitGaugeName.length() > 0
? explicitGaugeName : javaMethod.getName());
annotatedGaugeSites.put(gaugeName, method);
LOGGER.log(Level.FINE, () -> String.format("### Recorded annotated gauge with name %s", gaugeName));
});
}
代码示例来源:origin: oracle/helidon
/**
* Collects all FT methods in a set for later processing.
*
* @param event Event information.
*/
void registerFaultToleranceMethods(@Observes ProcessManagedBean<?> event) {
AnnotatedType<?> type = event.getAnnotatedBeanClass();
for (AnnotatedMethod<?> method : type.getMethods()) {
if (isFaultToleranceMethod(type.getJavaClass(), method.getJavaMember())) {
getRegisteredMethods().add(new BeanMethod(type.getJavaClass(), method.getJavaMember()));
}
}
}
代码示例来源:origin: jersey/jersey
@Override
public Set getFields() {
return annotatedType.getFields();
}
代码示例来源:origin: oracle/helidon
/**
* Gather Application or resource classes to start.
*
* @param pit injection target
* @param <T> any type
*/
@SuppressWarnings("unchecked")
public <T> void gatherApplications(@Observes ProcessInjectionTarget<T> pit) {
AnnotatedType<T> at = pit.getAnnotatedType();
if (!at.isAnnotationPresent(ApplicationScoped.class)) {
return;
}
// class is annotated, let's make sure it is an application
Class<?> theClass = at.getJavaClass();
if (Application.class.isAssignableFrom(theClass)) {
this.applications.add((Class<? extends Application>) theClass);
} else {
// still may be a jax-rs resource (with no application attached)
if (at.isAnnotationPresent(Path.class)) {
this.resourceClasses.add(theClass);
}
}
}
代码示例来源:origin: oracle/helidon
private void registerMetrics(@Observes @WithAnnotations({Counted.class, Metered.class, Timed.class})
ProcessAnnotatedType<?> pat) {
AnnotatedType<?> type = pat.getAnnotatedType();
Interceptor annot = type.getAnnotation(Interceptor.class);
if (annot != null) {
return;
LOGGER.log(Level.FINE, () -> "### Processing annotations for " + pat.getAnnotatedType().getJavaClass().getName());
AnnotatedTypeConfigurator<?> configurator = pat.configureAnnotatedType();
Class<?> clazz = configurator.getAnnotated().getJavaClass();
configurator.filterMethods(method -> !Modifier.isPrivate(method.getJavaMember().getModifiers()))
.forEach(method -> {
METRIC_ANNOTATIONS.forEach(annotation -> {
LookupResult<? extends Annotation> lookupResult
= lookupAnnotation(method.getAnnotated().getJavaMember(), annotation, clazz);
if (lookupResult != null) {
registerMetric(method.getAnnotated().getJavaMember(), clazz, lookupResult);
代码示例来源:origin: resteasy/Resteasy
/**
* Set a default scope for each CDI bean which is a JAX-RS Provider.
*
* @param <T> type
* @param event event
* @param beanManager bean manager
*/
public <T> void observeProviders(@WithAnnotations({Provider.class}) @Observes ProcessAnnotatedType<T> event, BeanManager beanManager)
{
setBeanManager(beanManager);
AnnotatedType<T> annotatedType = event.getAnnotatedType();
if(!annotatedType.getJavaClass().isInterface()
&& !isSessionBean(annotatedType)
// This check is redundant for CDI 1.1 containers but required for CDI 1.0
&& annotatedType.isAnnotationPresent(Provider.class))
{
LogMessages.LOGGER.debug(Messages.MESSAGES.discoveredCDIBeanJaxRsProvider(annotatedType.getJavaClass().getCanonicalName()));
event.setAnnotatedType(wrapAnnotatedType(annotatedType, applicationScopedLiteral));
this.providers.add(annotatedType.getJavaClass());
}
}
代码示例来源:origin: org.demoiselle.jee/demoiselle-core
protected void startup(@Observes ProcessAnnotatedType<?> event) {
final AnnotatedType<?> annotatedType = event.getAnnotatedType();
for (AnnotatedMethod<?> am : annotatedType.getMethods()) {
if (am.isAnnotationPresent(Startup.class)) {
methodsWithStartup.add(new AnnotatedMethodProcessor(am));
}
if (am.isAnnotationPresent(Shutdown.class)) {
methodsWithShutdown.add(new AnnotatedMethodProcessor(am));
}
}
}
代码示例来源:origin: jersey/jersey
/**
* Ignores the classes which are manually added using bindings (through {@link Application} class) and scanned by CDI.
* The manual adding is privileged and the beans scanned using CDI are ignored.
* <p>
* TODO: The method counts with the condition that the all bindings are known before the CDI scanning has been started,
* can be changed during the migration from CDI SE to JAVA EE environment.
*
* @param pat processed type.
* @param <T> type of the scanned bean.
*/
public <T> void ignoreManuallyRegisteredComponents(
@Observes @WithAnnotations({ Path.class, Provider.class }) ProcessAnnotatedType<T> pat) {
for (Binding binding : bindings.getBindings()) {
if (ClassBinding.class.isAssignableFrom(binding.getClass())) {
ClassBinding<?> classBinding = (ClassBinding<?>) binding;
if (pat.getAnnotatedType().getJavaClass() == classBinding.getService()) {
pat.veto();
return;
}
} else if (InstanceBinding.class.isAssignableFrom(binding.getClass())) {
InstanceBinding<?> instanceBinding = (InstanceBinding<?>) binding;
if (pat.getAnnotatedType().getJavaClass() == instanceBinding.getService().getClass()) {
pat.veto();
return;
}
}
}
}
代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl
void observesAnimalShelterPAT(@Observes ProcessAnnotatedType<AnimalShelter> event) {
AnnotatedTypeConfigurator<AnimalShelter> annotatedTypeConfigurator = event.configureAnnotatedType();
AnnotatedMethod<? super AnimalShelter> annotatedMethod = methodConfigurator.getAnnotated();
annotatedMethodEqual.set(AnnotatedTypes.compareAnnotatedCallable(
event.getAnnotatedType().getMethods().stream().filter(m -> m.getJavaMember().getName().equals("observesRoomInShelter")).findAny().get(),
annotatedMethod));
.filterConstructors(ac -> ac.isAnnotationPresent(Inject.class))
.findFirst().get();
AnnotatedConstructor<AnimalShelter> originalAnnotatedConstructor = event.getAnnotatedType().getConstructors().stream()
.filter(m -> m.isAnnotationPresent(Inject.class)).findAny().get();
.set(AnnotatedTypes.compareAnnotatedParameters(originalAnnotatedConstructor.getParameters(), configuratorAnnotatedConstructor.getParameters()));
return annotatedField.getJavaMember().getName().equals("cat");
}).findFirst().get();
.compareAnnotatedField(event.getAnnotatedType().getFields().stream().filter(af -> af.getJavaMember().getName().equals("cat")).findAny().get(),
annotatedField));
代码示例来源:origin: jersey/jersey
/**
* Wraps all JAR-RS components by Jersey-specific injection target.
*
* @param pit process injection target.
* @param <T> type of the processed injection target.
*/
public <T> void observeInjectionTarget(@Observes ProcessInjectionTarget<T> pit) {
BasicInjectionTarget<T> it = (BasicInjectionTarget<T>) pit.getInjectionTarget();
JerseyInjectionTarget<T> jerseyInjectionTarget =
new JerseyInjectionTarget<>(it, pit.getAnnotatedType().getJavaClass());
jerseyInjectionTargets.add(jerseyInjectionTarget);
pit.setInjectionTarget(jerseyInjectionTarget);
}
代码示例来源:origin: org.jboss.weld.se/weld-se
public static String formatAnnotatedMethod(AnnotatedMethod<?> method) {
return Formats.formatSimpleClassName(method) + " " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(method.getAnnotations()))
+ Formats.addSpaceIfNeeded(Formats.formatModifiers(method.getJavaMember().getModifiers())) + method.getDeclaringType().getJavaClass().getName() + "."
+ method.getJavaMember().getName() + Formats.formatAsFormalParameterList(method.getParameters());
}
代码示例来源:origin: jersey/jersey
@SuppressWarnings("unused")
private void processInjectionTarget(@Observes final ProcessInjectionTarget event) {
final InjectionTarget it = event.getInjectionTarget();
final Class<?> componentClass = event.getAnnotatedType().getJavaClass();
|| jaxrsInjectableTypes.contains(event.getAnnotatedType().getBaseType())) {
target = new InjectionManagerInjectedCdiTarget(it) {
代码示例来源:origin: org.jboss.cdi.tck/cdi-tck-impl
void processAnnotatedType(@Observes ProcessAnnotatedType<FruitObserver> pat) {
peachObserver = pat.getAnnotatedType().getMethods().stream()
.filter(annotatedMethod -> annotatedMethod.getJavaMember().getName().equals("observesPeach")).findAny().get();
}
代码示例来源:origin: org.agorava/solder-generics-impl
<X> void registerGenericBean(@Observes ProcessManagedBean<X> event) {
AnnotatedType<X> type = event.getAnnotatedBeanClass();
if (type.isAnnotationPresent(GenericConfiguration.class)) {
Class<? extends Annotation> genericType = type.getAnnotation(GenericConfiguration.class).value();
genericBeans.put(genericType, new BeanHolder<X>(event.getAnnotatedBeanClass(), event.getBean()));
for (AnnotatedMethod<? super X> m : event.getAnnotatedBeanClass().getMethods()) {
if (m.isAnnotationPresent(Unwraps.class)) {
unwrapsMethods.put(genericType, m);
}
}
}
}
代码示例来源:origin: org.apache.myfaces.core/myfaces-impl
<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event, BeanManager beanManager)
{
FacesConfig facesConfig = event.getAnnotatedType().getAnnotation(FacesConfig.class);
if (facesConfig != null && facesConfig.version() == FacesConfig.Version.JSF_2_3)
{
registerCdiProducers = true;
}
}
代码示例来源:origin: org.jboss.weld.se/weld-se
if (!t1.getJavaClass().equals(t2.getJavaClass())) {
return false;
if (t1.getFields().size() != t2.getFields().size()) {
return false;
for (AnnotatedField<?> f : t2.getFields()) {
fields.put(f.getJavaMember(), f);
for (AnnotatedField<?> f : t1.getFields()) {
if (fields.containsKey(f.getJavaMember())) {
if (!compareAnnotatedField(f, fields.get(f.getJavaMember()))) {
return false;
if (t1.getMethods().size() != t2.getMethods().size()) {
return false;
for (AnnotatedMethod<?> f : t2.getMethods()) {
methods.put(f.getJavaMember(), f);
for (AnnotatedMethod<?> f : t1.getMethods()) {
if (methods.containsKey(f.getJavaMember())) {
if (!compareAnnotatedCallable(f, methods.get(f.getJavaMember()))) {
return false;
if (t1.getConstructors().size() != t2.getConstructors().size()) {
return false;
for (AnnotatedConstructor<?> f : t2.getConstructors()) {
代码示例来源:origin: weld/core
public static String formatAnnotatedField(AnnotatedField<?> field) {
return Formats.formatSimpleClassName(field) + " " + Formats.addSpaceIfNeeded(Formats.formatAnnotations(field.getAnnotations()))
+ Formats.addSpaceIfNeeded(Formats.formatModifiers(field.getJavaMember().getModifiers())) + field.getDeclaringType().getJavaClass().getName() + "."
+ field.getJavaMember().getName();
}
代码示例来源:origin: weld/core
protected static void validateParameterCount(AnnotatedCallable<?> callable) {
if (callable instanceof BackedAnnotatedMember) {
return; // do not validate backed implementation
}
Class<?>[] parameterTypes = null;
if (callable instanceof AnnotatedConstructor<?>) {
parameterTypes = AnnotatedConstructor.class.cast(callable).getJavaMember().getParameterTypes();
} else {
parameterTypes = AnnotatedMethod.class.cast(callable).getJavaMember().getParameterTypes();
}
if (callable.getParameters().size() != parameterTypes.length) {
// For enums, BackedAnnotatedConstructor sets parameters to an empty list, so we shouldn't throw the DefinitionException
Class<?> declaringClass = callable.getDeclaringType().getJavaClass();
if (!declaringClass.isEnum() && !declaringClass.isMemberClass()) {
throw ReflectionLogger.LOG.incorrectNumberOfAnnotatedParametersMethod(callable.getParameters().size(), callable, callable.getParameters(), Arrays.asList(parameterTypes));
}
}
}
}
代码示例来源:origin: weld/core
static String annotatedMethodToString(AnnotatedMethod<?> method, Class<?> beanClass) {
StringBuilder builder = new StringBuilder();
builder.append(Formats.addSpaceIfNeeded(Formats.formatAnnotations(method.getAnnotations())));
builder.append(Formats.formatModifiers(method.getJavaMember().getModifiers()));
TypeVariable<Method>[] typeParams = method.getJavaMember().getTypeParameters();
builder.append(' ');
if (typeParams.length > 0) {
builder.append(Formats.formatTypeParameters(typeParams));
builder.append(' ');
}
builder.append(Formats.formatType(method.getJavaMember().getGenericReturnType()));
builder.append(' ');
if (!beanClass.getName().equals(method.getDeclaringType().getJavaClass().getName())) {
builder.append(Formats.formatType(method.getDeclaringType().getJavaClass()));
builder.append('.');
}
builder.append(method.getJavaMember().getName());
builder.append(Formats.formatAsFormalParameterList(method.getParameters()));
return builder.toString();
}
代码示例来源:origin: org.jboss.jsr299.tck/jsr299-tck-impl
private void validateManagedBean(AnnotatedType<Farm> type)
{
assert type.getBaseType().equals(Farm.class);
assert rawTypeSetMatches(type.getTypeClosure(), Farm.class, Object.class);
assert type.getFields().size() == 1;
assert type.getFields().iterator().next().isAnnotationPresent(Produces.class);
assert type.getMethods().size() == 1;
assert type.getMethods().iterator().next().isAnnotationPresent(Produces.class);
}
内容来源于网络,如有侵权,请联系作者删除!