package org.jboss.resteasy.core.interception.jaxrs; import java.util.Collections; import java.util.List; import javax.ws.rs.container.ContainerResponseFilter; import org.jboss.resteasy.spi.ResteasyProviderFactory; /** * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a> * @version $Revision: 1 $ */ public class ContainerResponseFilterRegistry extends JaxrsInterceptorRegistry<ContainerResponseFilter> { public ContainerResponseFilterRegistry(ResteasyProviderFactory providerFactory) { super(providerFactory, ContainerResponseFilter.class); } @Override protected void sort(List<Match> matches) { Collections.sort(matches, new DescendingPrecedenceComparator()); } public ContainerResponseFilterRegistry clone(ResteasyProviderFactory factory) { ContainerResponseFilterRegistry clone = new ContainerResponseFilterRegistry(factory); clone.interceptors.addAll(interceptors); return clone; } @Override public synchronized void registerClass(Class<? extends ContainerResponseFilter> declaring) { OnDemandInterceptorFactory factory = new OnDemandInterceptorFactory(declaring); factory.setIgnorePrematch(true); register(factory); } @Override public synchronized void registerClass(Class<? extends ContainerResponseFilter> declaring, int priority) { OnDemandInterceptorFactory factory = new OnDemandInterceptorFactory(declaring); factory.setIgnorePrematch(true); factory.setOrder(priority); register(factory); } @Override public synchronized void registerSingleton(ContainerResponseFilter interceptor) { SingletonInterceptorFactory factory = new SingletonInterceptorFactory(interceptor.getClass(), interceptor); factory.setIgnorePrematch(true); register(factory); } @Override public synchronized void registerSingleton(ContainerResponseFilter interceptor, int priority) { SingletonInterceptorFactory factory = new SingletonInterceptorFactory(interceptor.getClass(), interceptor); factory.setIgnorePrematch(true); factory.setOrder(priority); register(factory); } }