All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.weld.resources.spi.AnnotationDiscovery Maven / Gradle / Ivy

Go to download

This jar bundles all the bits of Weld and CDI required for running in a Servlet container.

There is a newer version: 6.0.0.Beta4
Show newest version
/*
 * JBoss, Home of Professional Open Source
 * Copyright 2013, Red Hat, Inc., and individual contributors
 * by the @authors tag. See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jboss.weld.resources.spi;

import java.lang.annotation.Annotation;
import java.lang.annotation.Inherited;

import org.jboss.weld.bootstrap.api.Service;

/**
 * 

* This service allows an integrator to expose an annotation index for a deployment obtained from bytecode scanning. This * service is optional. If provided, Weld will use this service to avoid expensive Java Reflection calls. *

* * @deprecated This service is deprecated. Implement {@link ClassFileServices} instead. * * @author Jozef Hartinger * */ @Deprecated public interface AnnotationDiscovery extends Service { /** *

* Indicates whether the given class contains an annotation of the given annotation type. *

* *

The process begins with enumerating a set of annotations which consists of:

* *
    *
  • the given annotation
  • *
  • any annotation present in the deployment which on which the given annotation is present as a meta-annotation (as returned by {@link ExtendedAnnotationDiscovery#getAnnotationsAnnotatedWith(Class)})
  • *
* *

The set is referred to as M hereafter

* *

The given class is said to contain the given annotation if any of these applies:

* *
    *
  • A member of M is present on the class
  • *
  • A member of M, which is annotated with {@link Inherited}, is present on a direct or indirect superclass of the given class
  • *
  • A member of M is present on a field or method declared by the given class or any direct or indirect superclass of the given class
  • *
  • A member of M is present on a parameter of a method declared by the given class or any direct or indirect superclass of the given class
  • *
  • A member of M is present on a constructor declared by the given class
  • *
  • A member of M is present on a parameter of a constructor declared by the given class
  • *
* *

This is a per-deployment service.

* * @param javaClass the given class * @param annotation the given annotation type * @return whether the given class contains an annotation of the given annotation type */ boolean containsAnnotation(Class javaClass, Class annotation); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy