final Iterator<Interceptor> iterator = interceptors.iterator();
if (iterator.hasNext()) {
Interceptor interceptor = iterator.next();
return interceptor.intercept(new InvocationContext() {
@Override
public Object invoke() throws Throwable {
if (iterator.hasNext()) {
return iterator.next().intercept(this);