@SafeVarargs static PhaseInterceptorChain getChain(AtomicReference<ChainHolder> lastData, SortedSet<Phase> phaseList, List<Interceptor<? extends Message>> ... providers) { ChainHolder last = lastData.get(); if (last == null || !last.matches(providers)) { PhaseInterceptorChain chain = new PhaseInterceptorChain(phaseList); List<ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>> copy = new ArrayList<ModCountCopyOnWriteArrayList< Interceptor<? extends Message>>>(providers.length); for (List<Interceptor<? extends Message>> p : providers) { copy.add(new ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>(p)); chain.add(p); } last = new ChainHolder(chain, copy); lastData.set(last); } return last.chain.cloneChain(); }
private PhaseInterceptorChain getChain(SortedSet<Phase> phaseList, List<Interceptor<? extends Message>> ... providers) { ChainHolder last = lastData.get(); if (last == null || !last.matches(providers)) { PhaseInterceptorChain chain = new PhaseInterceptorChain(phaseList); List<ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>> copy = new ArrayList<ModCountCopyOnWriteArrayList< Interceptor<? extends Message>>>(providers.length); for (List<Interceptor<? extends Message>> p : providers) { copy.add(new ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>(p)); chain.add(p); } last = new ChainHolder(chain, copy); lastData.set(last); } return last.chain.cloneChain(); }
@SafeVarargs static PhaseInterceptorChain getChain(AtomicReference<ChainHolder> lastData, SortedSet<Phase> phaseList, List<Interceptor<? extends Message>> ... providers) { ChainHolder last = lastData.get(); if (last == null || !last.matches(providers)) { PhaseInterceptorChain chain = new PhaseInterceptorChain(phaseList); List<ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>> copy = new ArrayList<ModCountCopyOnWriteArrayList< Interceptor<? extends Message>>>(providers.length); for (List<Interceptor<? extends Message>> p : providers) { copy.add(new ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>(p)); chain.add(p); } last = new ChainHolder(chain, copy); lastData.set(last); } return last.chain.cloneChain(); }
private PhaseInterceptorChain getChain(SortedSet<Phase> phaseList, List<Interceptor<? extends Message>> ... providers) { ChainHolder last = lastData.get(); if (last == null || !last.matches(providers)) { PhaseInterceptorChain chain = new PhaseInterceptorChain(phaseList); List<ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>> copy = new ArrayList<ModCountCopyOnWriteArrayList< Interceptor<? extends Message>>>(providers.length); for (List<Interceptor<? extends Message>> p : providers) { copy.add(new ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>(p)); chain.add(p); } last = new ChainHolder(chain, copy); lastData.set(last); } return last.chain.cloneChain(); }