package net.csdn.validate.impl; import net.csdn.validate.BaseValidateParse; import net.csdn.validate.ValidateHelper; import net.csdn.validate.ValidateResult; import java.lang.reflect.Field; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * BlogInfo: WilliamZhu * Date: 12-7-4 * Time: 下午12:59 */ public class Format extends BaseValidateParse { private static String notice = "{} is invalid"; @Override public void parse(final Object target, final List<ValidateResult> validateResultList) { final Class clzz = target.getClass(); iterateValidateInfo(clzz, ValidateHelper.format, new ValidateIterator() { @Override public void iterate(String targetFieldName, Field field, Object info) throws Exception { String msg = notice; if (info instanceof Map) msg = messageWithDefault((Map) info, notice); String value = (String) getModelField(clzz, targetFieldName).get(target); if (value == null || value.isEmpty()) { validateResultList.add(validateResult(msg, targetFieldName)); } Map format = (Map) info; String regex = (String) format.get(ValidateHelper.Format.with); Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(value); if (!matcher.matches()) { validateResultList.add(validateResult(msg, targetFieldName)); } } }); } }