001: /* *************************************************************************
002:
003: Millstone(TM)
004: Open Sourced User Interface Library for
005: Internet Development with Java
006:
007: Millstone is a registered trademark of IT Mill Ltd
008: Copyright (C) 2000-2005 IT Mill Ltd
009:
010: *************************************************************************
011:
012: This library is free software; you can redistribute it and/or
013: modify it under the terms of the GNU Lesser General Public
014: license version 2.1 as published by the Free Software Foundation.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: *************************************************************************
026:
027: For more information, contact:
028:
029: IT Mill Ltd phone: +358 2 4802 7180
030: Ruukinkatu 2-4 fax: +358 2 4802 7181
031: 20540, Turku email: info@itmill.com
032: Finland company www: www.itmill.com
033:
034: Primary source for MillStone information and releases: www.millstone.org
035:
036: ********************************************************************** */
037:
038: package org.millstone.base.data.validator;
039:
040: import org.millstone.base.data.*;
041:
042: /**
043: * @author Administrator
044: *
045: * To change this generated comment edit the template variable "typecomment":
046: * Window>Preferences>Java>Templates.
047: * To enable and disable the creation of type comments go to
048: * Window>Preferences>Java>Code Generation.
049: */
050: /** This validator is used to validate the lenght of strings.
051: *
052: * @author IT Mill Ltd.
053: * @version 3.1.1
054: * @since 3.0
055: */
056: public class StringLengthValidator implements Validator {
057:
058: private int minLength = -1;
059: private int maxLength = -1;
060: private boolean allowNull = true;
061: private String errorMessage;
062:
063: /** Create a new StringLengthValidator with a given error message.
064: *
065: * @param errorMessage - The message to display in case the value does not validate.
066: */
067: public StringLengthValidator(String errorMessage) {
068: setErrorMessage(errorMessage);
069: }
070:
071: /** Create a new StringLenghtValidator with a given error message,
072: * permissable lenghts and null-string allowance.
073: *
074: * @param errorMessage - The message to display in case the value does not validate.
075: * @param minLenght - The minimum permissable lenght of the string.
076: * @param maxLenght - The maximum permissable lenght of the string.
077: * @param allowNull - Are null strings permissable?
078: */
079: public StringLengthValidator(String errorMessage, int minLength,
080: int maxLength, boolean allowNull) {
081: this (errorMessage);
082: setMinLength(minLength);
083: setMaxLength(maxLength);
084: setNullAllowed(allowNull);
085: }
086:
087: /** Validate the value.
088: * @param value - The value to validate.
089: */
090: public void validate(Object value)
091: throws Validator.InvalidValueException {
092: if (value == null && !allowNull)
093: throw new Validator.InvalidValueException(errorMessage);
094: String s = value.toString();
095: if (s == null && !allowNull)
096: throw new Validator.InvalidValueException(errorMessage);
097: int len = s.length();
098: if ((minLength >= 0 && len < minLength)
099: || (maxLength >= 0 && len > maxLength))
100: throw new Validator.InvalidValueException(errorMessage);
101: }
102:
103: /** True if the value is valid.
104: * @param value - The value to validate.
105: */
106: public boolean isValid(Object value) {
107: if (value == null && !allowNull)
108: return true;
109: String s = value.toString();
110: if (s == null && !allowNull)
111: return true;
112: int len = s.length();
113: if ((minLength >= 0 && len < minLength)
114: || (maxLength >= 0 && len > maxLength))
115: return false;
116: return true;
117: }
118:
119: /** True if null strings are allowed.
120: */
121: public final boolean isNullAllowed() {
122: return allowNull;
123: }
124:
125: /** Get the maximum permissable length of the string.
126: */
127: public final int getMaxLength() {
128: return maxLength;
129: }
130:
131: /** Get the minimum permissable lenght of the string.
132: */
133: public final int getMinLength() {
134: return minLength;
135: }
136:
137: /** Sets wheter null-strings are to be allowed.
138: */
139: public void setNullAllowed(boolean allowNull) {
140: this .allowNull = allowNull;
141: }
142:
143: /** Set the maximum permissable length of the string.
144: * @param maxLenght - The lenght to set.
145: */
146: public void setMaxLength(int maxLength) {
147: if (maxLength < -1)
148: maxLength = -1;
149: this .maxLength = maxLength;
150: }
151:
152: /** Sets the minimum permissable lenght.
153: * @param minLenght - The lenght to set.
154: */
155: public void setMinLength(int minLength) {
156: if (minLength < -1)
157: minLength = -1;
158: this .minLength = minLength;
159: }
160:
161: /** Gets the message to be displayed in case the
162: * value does not validate.
163: */
164: public String getErrorMessage() {
165: return errorMessage;
166: }
167:
168: /** Sets the message to be displayer in case the
169: * value does not validate.
170: */
171: public void setErrorMessage(String errorMessage) {
172: this.errorMessage = errorMessage;
173: }
174:
175: }
|