View Javadoc

1   /**
2    * Copyright 2005-2012 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kns.datadictionary.validation.charlevel;
17  
18  import org.kuali.rice.krad.datadictionary.exporter.ExportMap;
19  import org.kuali.rice.krad.datadictionary.validation.CharacterLevelValidationPattern;
20  import org.kuali.rice.krad.util.KRADConstants;
21  
22  /**
23   * Pattern for matching any printable character
24   * 
25   * 
26   */
27  public class AnyCharacterValidationPattern extends CharacterLevelValidationPattern {
28      protected boolean allowWhitespace = false;
29  
30  
31      /**
32       * @return allowWhitespace
33       */
34      public boolean getAllowWhitespace() {
35          return allowWhitespace;
36      }
37  
38      /**
39       * @param allowWhitespace
40       */
41      public void setAllowWhitespace(boolean allowWhitespace) {
42          this.allowWhitespace = allowWhitespace;
43      }
44  
45  
46      /**
47       * @see org.kuali.rice.krad.datadictionary.validation.ValidationPattern#getRegexString()
48       */
49      protected String getRegexString() {
50          StringBuffer regexString = new StringBuffer("[");
51  
52  
53          regexString.append("\\p{Graph}");
54          if (allowWhitespace) {
55              regexString.append("\\p{Space}");
56          }
57          regexString.append("]");
58  
59          return regexString.toString();
60      }
61  
62  
63      /**
64       * @see org.kuali.rice.krad.datadictionary.validation.CharacterLevelValidationPattern#extendExportMap(org.kuali.rice.krad.datadictionary.exporter.ExportMap)
65       */
66      public void extendExportMap(ExportMap exportMap) {
67          exportMap.set("type", "anyCharacter");
68  
69          if (allowWhitespace) {
70              exportMap.set("allowWhitespace", "true");
71          }
72      }
73      
74  	@Override
75  	protected String getValidationErrorMessageKeyOptions() {
76  		if (getAllowWhitespace()) {
77  			return ".allowWhitespace";
78  		}
79  		return KRADConstants.EMPTY_STRING;
80  	}
81  }