package org.jboss.resteasy.core.interception.jaxrs;

import org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry;
import org.jboss.resteasy.resteasy_jaxrs.i18n.LogMessages;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.container.PreMatching;
import java.util.logging.Logger;

Created by rsearls on 8/4/17.
/** * Created by rsearls on 8/4/17. */
public class ClientRequestFilterRegistry extends JaxrsInterceptorRegistry<ClientRequestFilter> { //private static final Logger LOGGER = Logger.getLogger(ClientRequestFilterRegistry.class.getName()); public ClientRequestFilterRegistry(ResteasyProviderFactory providerFactory) { super(providerFactory, ClientRequestFilter.class); } @Override public synchronized void registerClass(Class<? extends ClientRequestFilter> declaring) { checkPreMaching(declaring); OnDemandInterceptorFactory factory = new OnDemandInterceptorFactory(declaring) { @Override public Match preMatch() { return null; } }; factory.setIgnorePrematch(true); register(factory); } @Override public synchronized void registerClass(Class<? extends ClientRequestFilter> declaring, int priority) { checkPreMaching(declaring); OnDemandInterceptorFactory factory = new OnDemandInterceptorFactory(declaring) { @Override public Match preMatch() { return null; } }; factory.setIgnorePrematch(true); factory.setOrder(priority); register(factory); } private void checkPreMaching(Class declaring) { if (declaring.isAnnotationPresent(PreMatching.class)) { LogMessages.LOGGER.warningPreMatchingSupport(declaring.getName()); } } @Override public ClientRequestFilterRegistry clone(ResteasyProviderFactory factory) { ClientRequestFilterRegistry clone = new ClientRequestFilterRegistry(factory); clone.interceptors.addAll(interceptors); return clone; } }