View Javadoc

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} blocks fields that contain !, @, %, &, *, ~,
29   * ?, <, and > from passing validation.
30   * 
31   * @author robweber
32   * @deprecated Use a {@link RegularExpressionCsvFieldValidator} with a regular
33   *             expression of "^[^\!\@\%\&\*\~\?\<\>]*$"
34   */
35  public class NoSpecialCharacterCsvFieldValidator extends CsvFieldValidator {
36      private static final String NO_SPECIAL_CHARACTER_REGEX = "^[^//!//@//%//&//*//~//?//<//>]*$";
37  
38      @Override
39      protected boolean doValidate(
40              CsvFieldValidationContext csvFieldValidationContext)
41              throws Exception {
42          if (GenericValidator.matchRegexp(csvFieldValidationContext
43                  .getValueToValidate(), NO_SPECIAL_CHARACTER_REGEX)) {
44              return false;
45          }
46  
47          throw new ValidationException("The value to validate, "
48                  + csvFieldValidationContext.getValueToValidate()
49                  + ", contains invalid characters.");
50      }
51  }