package org.codelibs.elasticsearch.taste.rest.handler; import java.util.Map; import org.elasticsearch.common.xcontent.ToXContent.Params; public class RequestHandlerChain { RequestHandler[] handlers; int position = 0; public RequestHandlerChain(final RequestHandler[] handlers) { this.handlers = handlers; } public void execute(final Params params, final RequestHandler.OnErrorListener listener, final Map<String, Object> requestMap, final Map<String, Object> paramMap) { synchronized (handlers) { if (position < handlers.length) { final RequestHandler handler = handlers[position]; position++; handler.execute(params, listener, requestMap, paramMap, this); } } } }