1 /*** 2 * Copyright (C) 2008 rweber <quietgenie@users.sourceforge.net> 3 * 4 * This file is part of CsvObjectMapper. 5 * 6 * CsvObjectMapper is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Lesser General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * CsvObjectMapper is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public License 17 * along with CsvObjectMapper. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 /*** 21 * 22 */ 23 package com.projectnine.csvmapper; 24 25 import org.apache.commons.validator.GenericValidator; 26 27 /*** 28 * This {@link CsvFieldValidator} prevents non-standard US Postal codes from 29 * passing validation. 30 * 31 * @author robweber 32 * @deprecated Use {@link RegularExpressionCsvFieldValidator} with a regular 33 * expression of "^//d{5}//p{Punct}?//s?(?://d{4})?$" instead. 34 */ 35 public class PostalCodeCsvFieldValidator extends CsvFieldValidator { 36 private static final String ZIPCODE_REGEXP = "^//d{5}([-]?//d{4})?$"; 37 38 public static void main(String[] args) throws Exception { 39 CsvFieldValidationContext context = new CsvFieldValidationContext(); 40 context.setValueToValidate("12222-0000"); 41 new PostalCodeCsvFieldValidator().execute(context); 42 } 43 44 @Override 45 protected boolean doValidate( 46 CsvFieldValidationContext csvFieldValidationContext) 47 throws Exception { 48 if (GenericValidator.matchRegexp(csvFieldValidationContext 49 .getValueToValidate(), ZIPCODE_REGEXP)) { 50 return false; 51 } 52 53 throw new ValidationException("The tendered zip code, " 54 + csvFieldValidationContext.getValueToValidate() 55 + ", is not a valid zip code."); 56 } 57 }