Java 类java.lang.reflect.AnnotatedElement 实例源码
项目:gitplex-mit
文件:EditableUtils.java
/**
* Get display name of specified element from name parameter of {@link Editable} annotation.
* If the annotation is not defined or name parameter is not available in the annotation, the
* element name itself will be transferred to non-camel case and returned.
*
* @param element
* annotated element to get name from
* @return
* display name of the element
*/
public static String getName(AnnotatedElement element) {
Editable editable = element.getAnnotation(Editable.class);
if (editable != null && editable.name().trim().length() != 0)
return editable.name();
else if (element instanceof Class)
return WordUtils.uncamel(((Class<?>)element).getSimpleName());
else if (element instanceof Field)
return WordUtils.uncamel(WordUtils.capitalize(((Field)element).getName()));
else if (element instanceof Method)
return StringUtils.substringAfter(WordUtils.uncamel(((Method)element).getName()), " ");
else if (element instanceof Package)
return ((Package)element).getName();
else
throw new GeneralException("Invalid element type: " + element.getClass().getName());
}
项目:elasticsearch_my
文件:InjectionPoint.java
private static <M extends Member & AnnotatedElement> void addInjectorsForMembers(
TypeLiteral<?> typeLiteral, Factory<M> factory, boolean statics,
Collection<InjectionPoint> injectionPoints, Errors errors) {
for (M member : factory.getMembers(getRawType(typeLiteral.getType()))) {
if (isStatic(member) != statics) {
continue;
}
Inject inject = member.getAnnotation(Inject.class);
if (inject == null) {
continue;
}
try {
injectionPoints.add(factory.create(typeLiteral, member, errors));
} catch (ConfigurationException ignorable) {
if (!inject.optional()) {
errors.merge(ignorable.getErrorMessages());
}
}
}
}
项目:OperatieBRP
文件:Configuration.java
private static String getNameFromMemberAnnotation(final AnnotatedElement field) {
final String result;
if (field.isAnnotationPresent(Attribute.class)) {
result = Utils.name(field.getAnnotation(Attribute.class).name(), field);
} else if (field.isAnnotationPresent(Element.class)) {
result = Utils.name(field.getAnnotation(Element.class).name(), field);
} else if (field.isAnnotationPresent(ElementList.class)) {
result = Utils.name(field.getAnnotation(ElementList.class).name(), field);
} else if (field.isAnnotationPresent(ElementMap.class)) {
result = Utils.name(field.getAnnotation(ElementMap.class).name(), field);
} else if (field.isAnnotationPresent(Text.class)) {
result = "**text**";
} else {
result = null;
}
return result;
}
项目:guava-mock
文件:FeatureUtil.java
/**
* Find all the tester annotations declared on a tester class or method.
* @param classOrMethod a class or method whose tester annotations to find
* @return an iterable sequence of tester annotations on the class
*/
public static Iterable<Annotation> getTesterAnnotations(AnnotatedElement classOrMethod) {
synchronized (annotationCache) {
List<Annotation> annotations = annotationCache.get(classOrMethod);
if (annotations == null) {
annotations = new ArrayList<Annotation>();
for (Annotation a : classOrMethod.getDeclaredAnnotations()) {
if (a.annotationType().isAnnotationPresent(TesterAnnotation.class)) {
annotations.add(a);
}
}
annotations = Collections.unmodifiableList(annotations);
annotationCache.put(classOrMethod, annotations);
}
return annotations;
}
}
项目:queries
文件:QueriesInvocationHandler.java
private SourceId getSourceId(AnnotatedElement element) {
SourceId sourceId = null;
Optional<Annotation> sourceAnnotation = Stream.of(element.getAnnotations())
.filter(a -> a.annotationType().isAnnotationPresent(RegisteredSourceIdProducer.class)).findFirst();
if (sourceAnnotation.isPresent()) {
RegisteredSourceIdProducer sourceIdProviderAnnotation = sourceAnnotation.get().annotationType()
.getAnnotation(RegisteredSourceIdProducer.class);
try {
SourceIdProducer sourceIdProducer = sourceIdProviderAnnotation.value().newInstance();
sourceId = sourceIdProducer.get(element, sourceAnnotation.get());
} catch (Exception e) {
throw new QueryProxyException("Problem with sourceId aquiring: can't find suitable constructor " + e,
e);
}
}
return sourceId;
}
项目:redg
文件:JpaMetamodelRedGProvider.java
private Map<String, String> getReferenceColumnNamesMapForReferenceAttribute(SingularAttribute<?, ?> attribute, ManagedType<?> targetEntity) {
List<String> idAttributeNames = targetEntity.getSingularAttributes().stream()
.filter(this::isIdAttribute)
.map(this::getSingularAttributeColumnName)
.collect(Collectors.toList());
JoinColumns joinColumnsAnnotation =
((AnnotatedElement) attribute.getJavaMember()).getAnnotation(JoinColumns.class);
JoinColumn joinColumnAnnotation =
((AnnotatedElement) attribute.getJavaMember()).getAnnotation(JoinColumn.class);
JoinColumn[] joinColumns = joinColumnsAnnotation != null ? joinColumnsAnnotation.value() :
joinColumnAnnotation != null ? new JoinColumn[]{joinColumnAnnotation} : null;
Map<String, String> referenceColumnNamesMap;
if (joinColumns != null) {
referenceColumnNamesMap = Arrays.stream(joinColumns)
.collect(Collectors.toMap(JoinColumn::name, joinColumn ->
joinColumn.referencedColumnName().length() > 0 ? joinColumn.referencedColumnName() :
idAttributeNames.get(0)));
} else {
referenceColumnNamesMap = idAttributeNames.stream()
.collect(Collectors.toMap(idAttributeName -> attribute.getName().toUpperCase() + "_"
+ idAttributeName, idAttributeName -> idAttributeName));
}
return referenceColumnNamesMap;
}
项目:lams
文件:CommonAnnotationBeanPostProcessor.java
public EjbRefElement(Member member, PropertyDescriptor pd) {
super(member, pd);
AnnotatedElement ae = (AnnotatedElement) member;
EJB resource = ae.getAnnotation(EJB.class);
String resourceBeanName = resource.beanName();
String resourceName = resource.name();
this.isDefaultName = !StringUtils.hasLength(resourceName);
if (this.isDefaultName) {
resourceName = this.member.getName();
if (this.member instanceof Method && resourceName.startsWith("set") && resourceName.length() > 3) {
resourceName = Introspector.decapitalize(resourceName.substring(3));
}
}
Class<?> resourceType = resource.beanInterface();
if (resourceType != null && !Object.class.equals(resourceType)) {
checkResourceType(resourceType);
}
else {
// No resource type specified... check field/method.
resourceType = getResourceType();
}
this.beanName = resourceBeanName;
this.name = resourceName;
this.lookupType = resourceType;
this.mappedName = resource.mappedName();
}
项目:jdk8u-jdk
文件:ProviderSkeleton.java
/**
* Utility method for calling an arbitrary method in an annotation.
*
* @param element the element that was annotated, either a class or method
* @param annotation the class of the annotation we're interested in
* @param methodName the name of the method in the annotation we wish
* to call.
* @param defaultValue the value to return if the annotation doesn't
* exist, or we couldn't invoke the method for some reason.
* @return the result of calling the annotation method, or the default.
*/
protected static Object getAnnotationValue(
AnnotatedElement element, Class<? extends Annotation> annotation,
String methodName, Object defaultValue) {
Object ret = defaultValue;
try {
Method m = annotation.getMethod(methodName);
Annotation a = element.getAnnotation(annotation);
ret = m.invoke(a);
} catch (NoSuchMethodException e) {
assert false;
} catch (IllegalAccessException e) {
assert false;
} catch (InvocationTargetException e) {
assert false;
} catch (NullPointerException e) {
assert false;
}
return ret;
}
项目:Elasticsearch
文件:InjectionPoint.java
private static <M extends Member & AnnotatedElement> void addInjectorsForMembers(
TypeLiteral<?> typeLiteral, Factory<M> factory, boolean statics,
Collection<InjectionPoint> injectionPoints, Errors errors) {
for (M member : factory.getMembers(getRawType(typeLiteral.getType()))) {
if (isStatic(member) != statics) {
continue;
}
Inject inject = member.getAnnotation(Inject.class);
if (inject == null) {
continue;
}
try {
injectionPoints.add(factory.create(typeLiteral, member, errors));
} catch (ConfigurationException ignorable) {
if (!inject.optional()) {
errors.merge(ignorable.getErrorMessages());
}
}
}
}
项目:holon-core
文件:AnnotationUtils.java
/**
* Find the annotations of given <code>annotationType</code> on given element and stores them in given
* <code>accumulator</code>.
* @param accumulator Accumulator
* @param element Annotated element
* @param annotationType Annotation type to lookup
* @param repeatableContainerType Optional repeteable annotation type
*/
private static <A extends Annotation> void findAnnotations(List<A> accumulator, AnnotatedElement element,
Class<A> annotationType, Class<? extends Annotation> repeatableContainerType) {
// direct lookup
A[] as = element.getAnnotationsByType(annotationType);
if (as.length > 0) {
for (A a : as) {
accumulator.add(a);
}
}
// check meta-annotations
Annotation[] all = element.getAnnotations();
if (all.length > 0) {
for (Annotation annotation : all) {
if (!isInJavaLangAnnotationPackage(annotation) && !annotation.annotationType().equals(annotationType)
&& (repeatableContainerType == null
|| !annotation.annotationType().equals(repeatableContainerType))) {
findAnnotations(accumulator, annotation.annotationType(), annotationType, repeatableContainerType);
}
}
}
}
项目:GitHub
文件:Annotations.java
public Annotations(AnnotatedElement... elements) {
for (AnnotatedElement element : elements) {
for (Annotation annotation : element.getAnnotations()) {
annotations.put(annotation.annotationType(), annotation);
}
}
}
项目:GitHub
文件:ReflectionUtils.java
public static AnnotatedElement getAnnotatedElement(Class<?> beanClass, String propertyName, Class<?> propertyClass) {
Field field = getFieldOrNull(beanClass, propertyName);
Method method = getGetterOrNull(beanClass, propertyName, propertyClass);
if (field == null || field.getAnnotations().length == 0) {
return (method != null && method.getAnnotations().length > 0) ? method : method;
} else if (method == null || method.getAnnotations().length == 0) {
return field;
} else {
//return new Annotations(field, method);
return null;
}
}
项目:Architecting-Modern-Java-EE-Applications
文件:TrackingInterceptor.java
private Tracked resolveAnnotation(InvocationContext context) {
Function<AnnotatedElement, Tracked> extractor = c -> c.getAnnotation(Tracked.class);
Method method = context.getMethod();
Tracked tracked = extractor.apply(method);
return tracked != null ? tracked : extractor.apply(method.getDeclaringClass());
}
项目:holon-core
文件:AnnotationUtils.java
/**
* Get all the annotations of given <code>annotationType</code> present in given <code>element</code>, including any
* meta-annotation and supporting repeatable annotations.
* @param <A> Annotation type
* @param element Annotated element to inspect (not null)
* @param annotationType Annotation type to lookup
* @return List of detected annotation of given <code>annotationType</code>, an empty List if none found
*/
public static <A extends Annotation> List<A> getAnnotations(AnnotatedElement element, Class<A> annotationType) {
ObjectUtils.argumentNotNull(element, "AnnotatedElement must be not null");
ObjectUtils.argumentNotNull(annotationType, "Annotation type must be not null");
Class<? extends Annotation> repeatableContainerType = null;
if (annotationType.isAnnotationPresent(Repeatable.class)) {
repeatableContainerType = annotationType.getAnnotation(Repeatable.class).value();
}
List<A> annotations = new LinkedList<>();
findAnnotations(annotations, element, annotationType, repeatableContainerType);
return annotations;
}
项目:jfairy-junit-extension
文件:IntegerProvider.java
@Override
Object createFor(AnnotatedElement annotatedElement, Class<?> targetType, Fairy fairy) {
IntegerWith config = findAnnotation(annotatedElement, IntegerWith.class).orElse(null);
int min = minValue(config);
int max = maxValue(config);
BaseProducer producer = fairy.baseProducer();
return producer.randomBetween(min, max);
}
项目:queries
文件:QueriesInvocationHandler.java
private List<QueryConverter> getConverters(AnnotatedElement element) {
List<QueryConverter> annotatedConverters = new ArrayList<>(2);
List<Annotation> converterAnnotations = Stream.of(element.getAnnotations())
.filter(a -> a.annotationType().isAnnotationPresent(Converter.class)
|| converters.containsKey(a.annotationType()))
.collect(Collectors.toList());
if (!converterAnnotations.isEmpty()) {
for (Annotation converterAnnotation : converterAnnotations) {
QueryConverterFactory factory;
if (converters.containsKey(converterAnnotation.annotationType())) {
factory = converters.get(converterAnnotation.annotationType());
} else {
Converter converter = converterAnnotation.annotationType().getAnnotation(Converter.class);
Class<? extends QueryConverterFactory> converterFactoryClass = converter.value();
if (Converter.DEFAULT.class.isAssignableFrom(converterFactoryClass)) {
throw new QueryProxyException("Factory is not registered for annotation "
+ converterAnnotation.annotationType().getName() + "! "
+ "Set static converter using @Converter annotation value or use Queries.Builder.converter() method to register factory instance!");
}
try {
factory = converterFactoryClass.newInstance();
} catch (Exception e) {
throw new QueryProxyException(
"Problem instantiating query converter factory class with no argument constructor " + e,
e);
}
}
annotatedConverters.add(factory.get(converterAnnotation));
}
}
return annotatedConverters;
}
项目:jdk8u-jdk
文件:TypeAnnotation.java
public TypeAnnotation(TypeAnnotationTargetInfo targetInfo,
LocationInfo loc,
Annotation annotation,
AnnotatedElement baseDeclaration) {
this.targetInfo = targetInfo;
this.loc = loc;
this.annotation = annotation;
this.baseDeclaration = baseDeclaration;
}
项目:incubator-netbeans
文件:FSWrapperTest.java
private static void checkAnnotations(AnnotatedElement el, AnnotatableWrapper aw) throws Exception {
for (Annotation ann : el.getAnnotations()) {
Annotation wrapper = aw.getAnnotation(ann.annotationType());
assertNotNull(ann.annotationType().getName(), wrapper);
checkAnnotation(ann, wrapper);
}
}
项目:NetCom2
文件:RemoteObjectRegistrationImpl.java
private boolean ignoreThrowable(Exception exception, AnnotatedElement... annotatedElements) {
if(exception != null) {
for(AnnotatedElement element : annotatedElements) {
if(element == null) {
continue;
}
IgnoreRemoteExceptions annotation = element.getAnnotation(IgnoreRemoteExceptions.class);
if(annotation != null) {
return !Arrays.asList(annotation.exceptTypes()).contains(exception.getClass());
}
}
}
return false;
}
项目:elasticsearch_my
文件:InjectionPoint.java
private static <M extends Member & AnnotatedElement> void addInjectionPoints(TypeLiteral<?> type,
Factory<M> factory, boolean statics, Collection<InjectionPoint> injectionPoints,
Errors errors) {
if (type.getType() == Object.class) {
return;
}
// Add injectors for superclass first.
TypeLiteral<?> superType = type.getSupertype(type.getRawType().getSuperclass());
addInjectionPoints(superType, factory, statics, injectionPoints, errors);
// Add injectors for all members next
addInjectorsForMembers(type, factory, statics, injectionPoints, errors);
}
项目:allure-java
文件:AllureJunit5AnnotationProcessor.java
private List<Label> getLabels(final AnnotatedElement annotatedElement) {
return Stream.of(
getAnnotations(annotatedElement, Epic.class).map(ResultsUtils::createLabel),
getAnnotations(annotatedElement, Feature.class).map(ResultsUtils::createLabel),
getAnnotations(annotatedElement, Story.class).map(ResultsUtils::createLabel),
getAnnotations(annotatedElement, Severity.class).map(ResultsUtils::createLabel),
getAnnotations(annotatedElement, Owner.class).map(ResultsUtils::createLabel)
).reduce(Stream::concat).orElseGet(Stream::empty).collect(Collectors.toList());
}
项目:allure-java
文件:AllureJunit5AnnotationProcessor.java
private List<Link> getLinks(final AnnotatedElement annotatedElement) {
return Stream.of(
getAnnotations(annotatedElement, io.qameta.allure.Link.class).map(ResultsUtils::createLink),
getAnnotations(annotatedElement, io.qameta.allure.Issue.class).map(ResultsUtils::createLink),
getAnnotations(annotatedElement, io.qameta.allure.TmsLink.class).map(ResultsUtils::createLink))
.reduce(Stream::concat).orElseGet(Stream::empty).collect(Collectors.toList());
}
项目:allure-java
文件:AllureJunit5AnnotationProcessor.java
private <T extends Annotation> Stream<T> getAnnotations(final AnnotatedElement annotatedElement,
final Class<T> annotationClass) {
final T annotation = annotatedElement.getAnnotation(annotationClass);
return Stream.concat(
extractRepeatable(annotatedElement, annotationClass).stream(),
Objects.isNull(annotation) ? Stream.empty() : Stream.of(annotation)
);
}
项目:allure-java
文件:Allure1Utils.java
private static <T extends Annotation> List<Label> getLabels(final AnnotatedElement element,
final Class<T> annotation,
final Function<T, List<Label>> extractor) {
return element.isAnnotationPresent(annotation)
? extractor.apply(element.getAnnotation(annotation))
: Collections.emptyList();
}
项目:allure-java
文件:Allure1Utils.java
public static <T extends Annotation> List<Link> getLinks(final Method method, final Class<T> annotation,
final Function<T, List<Link>> extractor) {
final List<Link> labels = new ArrayList<>();
labels.addAll(getLinks((AnnotatedElement) method, annotation, extractor));
labels.addAll(getLinks(method.getDeclaringClass(), annotation, extractor));
return labels;
}
项目:jfairy-junit-extension
文件:FairyExtension.java
private Object resolve(AnnotatedElement annotatedElement, Class<?> targetType) {
for (ObjectProvider provider : providers) {
if (provider.supports(targetType)) {
return provider.createFor(annotatedElement, targetType);
}
}
throw new IllegalArgumentException("no provider found for type " + targetType);
}
项目:bach
文件:DisabledCondition.java
@Override
public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext extensionContext) {
AnnotatedElement element = extensionContext.getElement().orElseThrow(AssertionError::new);
Disabled disabled = findAnnotation(element, Disabled.class).orElseThrow(AssertionError::new);
String name = disabled.value();
String reason = name + "=" + System.getProperty(name);
boolean result = Boolean.getBoolean(name);
if (disabled.not()) {
result = !result;
}
if (result) {
return ConditionEvaluationResult.disabled(reason);
}
return ConditionEvaluationResult.enabled(reason);
}
项目:micrometer
文件:AnnotationFinder.java
/**
* The default implementation performs a simple search for a declared annotation matching the search type.
* Spring provides a more sophisticated annotation search utility that matches on meta-annotations as well.
*
* @param annotatedElement The element to search.
* @param annotationType The annotation type class.
* @param <A> Annotation type to search for.
* @return
*/
@SuppressWarnings("unchecked")
default <A extends Annotation> A findAnnotation(AnnotatedElement annotatedElement, Class<A> annotationType) {
Annotation[] anns = annotatedElement.getDeclaredAnnotations();
for (Annotation ann : anns) {
if (ann.annotationType() == annotationType) {
return (A) ann;
}
}
return null;
}
项目:micrometer
文件:TimedFinder.java
Set<Timed> findTimedAnnotations(AnnotatedElement element) {
Timed t = annotationFinder.findAnnotation(element, Timed.class);
if (t != null)
return Collections.singleton(t);
TimedSet ts = annotationFinder.findAnnotation(element, TimedSet.class);
if (ts != null) {
return Arrays.stream(ts.value()).collect(Collectors.toSet());
}
return Collections.emptySet();
}
项目:micrometer
文件:TimedUtils.java
public static Set<Timed> findTimedAnnotations(AnnotatedElement element) {
Timed t = AnnotationUtils.findAnnotation(element, Timed.class);
if (t != null)
return Collections.singleton(t);
TimedSet ts = AnnotationUtils.findAnnotation(element, TimedSet.class);
if (ts != null) {
return Arrays.stream(ts.value()).collect(Collectors.toSet());
}
return Collections.emptySet();
}
项目:guava-mock
文件:FeatureUtil.java
/**
* Construct the set of requirements specified by annotations
* directly on a tester class or method.
* @param classOrMethod a tester class or a test method thereof
* @return all the constraints implicitly or explicitly required by
* annotations on the class or method.
* @throws ConflictingRequirementsException if the requirements are mutually
* inconsistent.
*/
public static TesterRequirements buildDeclaredTesterRequirements(AnnotatedElement classOrMethod)
throws ConflictingRequirementsException {
TesterRequirements requirements = new TesterRequirements();
Iterable<Annotation> testerAnnotations = getTesterAnnotations(classOrMethod);
for (Annotation testerAnnotation : testerAnnotations) {
TesterRequirements moreRequirements = buildTesterRequirements(testerAnnotation);
incorporateRequirements(requirements, moreRequirements, testerAnnotation);
}
return requirements;
}
项目:ProjectAres
文件:DocumentRegistry.java
private static String serializedName(Member member) {
if(member instanceof AnnotatedElement) {
SerializedName nameAnnot = ((AnnotatedElement) member).getAnnotation(SerializedName.class);
if(nameAnnot != null) return nameAnnot.value();
}
return member.getName();
}
项目:febit
文件:AnnotationUtil.java
public static boolean isAction(AnnotatedElement element) {
if (element.getAnnotation(Action.class) != null) {
return true;
}
for (Annotation anno : element.getAnnotations()) {
if (AnnotationUtil.isActionAnnotation(anno)) {
return true;
}
}
return false;
}
项目:redg
文件:JpaMetamodelRedGProvider.java
private static String getTableName(Class javaType) {
javax.persistence.Table tableAnnotation = ((AnnotatedElement) javaType).getAnnotation(javax.persistence.Table.class);
javax.persistence.Entity entityAnnotation = ((AnnotatedElement) javaType).getAnnotation(javax.persistence.Entity.class);
boolean tableNameSet = tableAnnotation != null && tableAnnotation.name().length() > 0;
boolean entityNameSet = entityAnnotation != null && entityAnnotation.name().length() > 0;
return tableNameSet ? tableAnnotation.name().toUpperCase() : entityNameSet ? entityAnnotation.name().toUpperCase() : javaType.getSimpleName().toUpperCase();
}
项目:validator-web
文件:ValidElement.java
public static ValidElement by(AnnotatedElement annotatedElement) {
Valid annotation = annotatedElement.getAnnotation(Valid.class);
if (annotation == null) {
return NULL_VALID;
}
return new ValidElement(annotation);
}
项目:GhostAdapter
文件:GhostAdapter.java
private void readAnnotations(AnnotatedElement element) {
if (element.isAnnotationPresent(BindItem.class)) {
BindItem bindItem = element.getAnnotation(BindItem.class);
putViewType(bindItem.layout(), bindItem.holder());
} else {
throw new IllegalStateException("items should be annotated with BindItem");
}
}
项目:camunda-bpm-swagger
文件:InvocationStep.java
/**
* Finds a parameter annotation.
*
* @param element
* annotated element.
* @return a pair with annotation type on the left and value on the right.
*/
public static Optional<Pair<Class<? extends Annotation>, String>> parameterAnnotation(final AnnotatedElement element) {
final PathParam pathParam = element.getAnnotation(PathParam.class);
if (pathParam != null) {
return Optional.of(Pair.of(PathParam.class, StringHelper.camelize(pathParam.value())));
}
final QueryParam queryParam = element.getAnnotation(QueryParam.class);
if (queryParam != null) {
return Optional.of(Pair.of(QueryParam.class, StringHelper.camelize(queryParam.value())));
}
return Optional.empty();
}
项目:junit5-extensions
文件:GuiceExtension.java
private static Set<Class<? extends Module>> getModuleTypes(AnnotatedElement element) {
return
findRepeatableAnnotations(element, IncludeModule.class)
.stream()
.map(IncludeModule::value)
.flatMap(Stream::of)
.collect(toSet());
}
项目:junit5-extensions
文件:TestDisabler.java
Optional<ConditionEvaluationResult> evaluateElement(
List<String> currentDisplayName,
AnnotatedElement element) {
List<Disable> disabledTests = findRepeatableAnnotations(element, Disable.class);
return disabledTests
.stream()
.filter(
disabledTest -> Arrays.asList(disabledTest.value()).equals(currentDisplayName))
.map(disabledTest -> ConditionEvaluationResult.disabled(disabledTest.reason()))
.findFirst();
}
项目:holon-jaxrs
文件:AuthenticationDynamicFeature.java
/**
* Checks if given <code>element</code> has the {@link Authenticate} annotation and if so registers the required
* authentication filters.
* @param context Feature context
* @param element Annotated element
* @return <code>true</code> if the {@link Authenticate} annotation was found and the authentication filters were
* registered, <code>false</code> otherwise
*/
private static boolean registerAuthenticationFilters(FeatureContext context, AnnotatedElement element) {
if (element.isAnnotationPresent(Authenticate.class)) {
// AuthContext setup for SecurityContext
context.register(AuthContextFilter.class, Priorities.AUTHENTICATION - 10);
// Authenticator
context.register(new AuthenticationFilter(element.getAnnotation(Authenticate.class).schemes()),
Priorities.AUTHENTICATION);
return true;
}
return false;
}