001 /** 002 * Copyright 2005-2011 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.krad.datadictionary.validation.constraint; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.kuali.rice.krad.uif.UifConstants; 020 021 /** 022 * Pattern for matching any printable character 023 */ 024 public class AnyCharacterPatternConstraint extends ValidCharactersPatternConstraint { 025 protected boolean allowWhitespace = false; 026 protected boolean omitNewline = false; 027 028 /** 029 * @return allowWhitespace 030 */ 031 public boolean getAllowWhitespace() { 032 return allowWhitespace; 033 } 034 035 /** 036 * @param allowWhitespace 037 */ 038 public void setAllowWhitespace(boolean allowWhitespace) { 039 this.allowWhitespace = allowWhitespace; 040 } 041 042 /** 043 * @see org.kuali.rice.krad.datadictionary.validation.ValidationPattern#getRegexString() 044 */ 045 protected String getRegexString() { 046 StringBuffer regexString = new StringBuffer("["); 047 048 regexString.append("\\x21-\\x7E"); 049 if (allowWhitespace) { 050 regexString.append("\\t\\v\\040"); 051 if (!omitNewline) { 052 regexString.append("\\f\\r\\n"); 053 } 054 } 055 056 regexString.append("]"); 057 058 return regexString.toString(); 059 } 060 061 /** 062 * @see org.kuali.rice.krad.datadictionary.validation.constraint.BaseConstraint#getLabelKey() 063 */ 064 @Override 065 public String getLabelKey() { 066 String labelKey = super.getLabelKey(); 067 if (StringUtils.isNotEmpty(labelKey)) { 068 return labelKey; 069 } 070 if (!allowWhitespace) { 071 return UifConstants.Messages.VALIDATION_MSG_KEY_PREFIX + "noWhitespace"; 072 } else { 073 return UifConstants.Messages.VALIDATION_MSG_KEY_PREFIX + "anyCharacterPattern"; 074 } 075 } 076 077 public boolean isOmitNewline() { 078 return omitNewline; 079 } 080 081 /** 082 * When set to true, omit new line characters from the set of valid characters. This flag 083 * will only have an effect if the allowWhitespace flag is true, otherwise all whitespace 084 * including new lines characters are omitted. 085 * @param omitNewline 086 */ 087 public void setOmitNewline(boolean omitNewline) { 088 this.omitNewline = omitNewline; 089 } 090 }