package com.delcyon.capo.webapp.widgets; import java.io.IOException; import eu.webtoolkit.jwt.WResource; import eu.webtoolkit.jwt.servlet.WebRequest; import eu.webtoolkit.jwt.servlet.WebResponse; /** this is just a wrapper class around WResource that less us use java 8 lambdas * * @author jeremiah * */ public abstract class WResourceFactory extends WResource { @Override protected void handleRequest(WebRequest request, WebResponse response) throws IOException { handleRequestFunction(request, response); } /** * method overridden by lambda expression * @param input * @return */ protected abstract void handleRequestFunction(WebRequest request, WebResponse response); /** * factory method to to use a lambda to make a custom WResource * {@link WResourceFactory#handleRequestFunction(WebRequest request, WebResponse response) handleRequest} method. * @param WebRequest request * @param WebResponse response */ public static WResource resource(WResourceInterface resourceInterface) { return new WResourceFactory() { @Override protected void handleRequestFunction(WebRequest request, WebResponse response) { resourceInterface.handleRequestFunction(request, response); } }; } /** * matches the handleRequestFunction method from WResource * */ public interface WResourceInterface { public abstract void handleRequestFunction(WebRequest request, WebResponse response); } }