001package common.http.interceptor;
002
003import javax.servlet.ServletContext;
004import javax.servlet.annotation.HandlesTypes;
005import java.util.Set;
006
007/**
008 * Classe chiamata nella fase di start-up del servlet container. Vedi JSR 369 sec 8.2.4
009 * @see ServletContainerInitializer
010 */
011@HandlesTypes(ServletInterceptor.class)
012public class ServletContainerInitializer implements javax.servlet.ServletContainerInitializer {
013    /**
014     * @param set L'insieme delle classi che rispettano i criteri imposti dall'annotazione {@link HandlesTypes}
015     * @param servletContext Il servlet context della webapp
016     */
017    @Override
018    public void onStartup(Set<Class<?>> set, ServletContext servletContext) {
019        //noinspection unchecked
020        set.stream().map(x -> (Class<? extends ServletInterceptor<?>>) x).forEach(ServletInterceptorFactory::register);
021    }
022}