01: /**
02: * Objective Database Abstraction Layer (ODAL)
03: * Copyright (c) 2004, The ODAL Development Group
04: * All rights reserved.
05: * For definition of the ODAL Development Group please refer to LICENCE.txt file
06: *
07: * Distributable under LGPL license.
08: * See terms of license at gnu.org.
09: */package com.completex.objective.components.persistency.rule.impl;
10:
11: import com.completex.objective.components.persistency.PersistentEntry;
12: import com.completex.objective.components.persistency.rule.RuleException;
13:
14: /**
15: * @author Gennady Krizhevsky
16: */
17: public class StringSizeFieldValidator extends AbstractFieldValidator {
18:
19: private int minSize;
20: private int maxSize;
21:
22: public StringSizeFieldValidator(int minSize, int maxSize) {
23: // assert minSize <= maxSize : "minSize > maxSize";
24: this .maxSize = maxSize;
25: this .minSize = minSize;
26: }
27:
28: protected void performValidation(PersistentEntry entry,
29: boolean verbose) throws RuleException {
30: // RuleHelper.assertRecordAndIndex(entry, fieldIndex);
31: if (!entry.isDirty() || entry.getValue() == null) {
32: return;
33: }
34:
35: String value = entry.getString();
36: if (value == null) {
37: return;
38: }
39: int size = value.length();
40: if (size < minSize && minSize >= 0) {
41: String message = "Field ["
42: + entry.getColumn().getColumnName() + "] size ["
43: + size + "] is less than allowed minimum - ["
44: + minSize + "];";
45: String detailedMessage = "Field ["
46: + entry.getColumn().getColumnName() + "] size ["
47: + size + "] is less than allowed minimum - ["
48: + minSize + "]; value : [" + value + "]";
49: throw new RuleException(message, detailedMessage)
50: .setFieldName(entry.getColumn().getColumnName());
51: }
52: if (size > maxSize && maxSize >= 0) {
53: String message = "Field ["
54: + entry.getColumn().getColumnName() + "] size ["
55: + size + "] exceeds allowed maximum - [" + maxSize
56: + "];";
57: String detailedMessage = "Field ["
58: + entry.getColumn().getColumnName() + "] size ["
59: + size + "] exceeds allowed maximum - [" + maxSize
60: + "]; value : [" + value + "]";
61: throw new RuleException(message, detailedMessage)
62: .setFieldName(entry.getColumn().getColumnName());
63: }
64: }
65: }
|