class RegexValuePredicate implements ValuePredicate<String> {

    @Override
    public boolean apply(@Nullable String input) {
		if(input == null){
			return false;
		}
		
	    if(policy == MatchPolicy.PARTIAL){
	    	return pattern.matcher(input).find();
	    }
	    
	    if(policy == MatchPolicy.FULL){
	    	return pattern.matcher(input).matches();
	    }
	    
	    throw new UnsupportedOperationException(String.format("the match policy %s is not supported", policy));
    }

    public  RegexValuePredicate(String regex, MatchPolicy policy);

}