package io.github.ibuildthecloud.gdapi.request.handler.write; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import io.github.ibuildthecloud.gdapi.request.handler.ApiRequestHandler; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; public class DefaultReadWriteApiDelegate implements ReadWriteApiDelegate { List<ApiRequestHandler> handlers; @Override public void read(ApiRequest request) throws IOException { handle(request); } @Override public void write(ApiRequest request) throws IOException { handle(request); } protected void handle(ApiRequest request) throws IOException { for (ApiRequestHandler handler : handlers) { handler.handle(request); } } public List<ApiRequestHandler> getHandlers() { return handlers; } @Override public void setHandlers(List<ApiRequestHandler> handlers) { this.handlers = handlers; } @Override public boolean handleException(ApiRequest request, Throwable e) throws IOException, ServletException { for (ApiRequestHandler handler : handlers) { if (handler.handleException(request, e)) { return true; } } return false; } }