
javax.enterprise.inject.spi.ProcessModule Maven / Gradle / Ivy
package javax.enterprise.inject.spi;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
/**
*
* The container fires an event of this type for each, before it processes the classes packaged in that module.
*
*
* Any observer of this event is permitted to add classes to, or remove classes from, the set of alternatives, list of
* interceptors or list of decorators. The container will use the final values of these collections, after all observers have
* been called, to determine the enabled alternatives, interceptors, and decorators for the bean deployment archive. The initial
* values of these collections is determined by reading the beans.xml
file of the bean deployment archive.
*
*
* If any observer method of a {@code ProcessModule} event throws an exception, the exception is treated as a definition error
* by the container.
*
*
* @author Pete Muir
*/
public interface ProcessModule {
/**
* @return the set of enabled alternatives of the bean deployment archive
*/
public Set> getAlternatives();
/**
* @return the list of enabled interceptors of the bean deployment archive.
*/
public List> getInterceptors();
/**
* @return the list of enabled decorators of the bean deployment archive
*/
public List> getDecorators();
/**
* @return an iterator over AnnotatedType
objects representing the Java classes and interfaces in the
* bean archive
*/
public Iterator> getAnnotatedTypes();
/**
* @return an input stream which can be used to read in the beans.xml
for this module
*/
public InputStream getBeansXml();
}