package com.delcyon.capo.webapp.widgets; import eu.webtoolkit.jwt.WValidator; /** this is just a wrapper class around WValidator that less us use java 8 lambdas * * @author jeremiah * */ public abstract class WValidatorFactory extends WValidator { @Override public Result validate(String input) { return validateFunction(input); } /** * method overridden by lambda expression * @param input * @return */ protected abstract Result validateFunction(String input); /** * factory method to to use a lambda to make a custom WValidator * {@link WValidatorInterface#validateFunction(String) validate} method. * @param (String input) -> Result * @return WValidator */ public static WValidator validator(WValidatorInterface validatorInterface) { return new WValidatorFactory() { @Override public Result validateFunction(String input) { return validatorInterface.validateFunction(input); } }; } /** * matches the validate method from WValidator * */ public interface WValidatorInterface { public abstract Result validateFunction(String input); } }