1 20 package org.enhydra.barracuda.core.forms.validators; 21 22 import java.util.*; 23 24 import org.enhydra.barracuda.core.forms.*; 25 import org.enhydra.barracuda.plankton.*; 26 import org.apache.log4j.*; 27 28 35 public class CardinalityValidator extends DefaultFormValidator { 36 37 int _min, _max; 38 39 public static final FormValidator ONE = new CardinalityValidator(1, 1); 40 public static final FormValidator ONE_TO_MANY = new CardinalityValidator(1, Integer.MAX_VALUE); 41 public static final FormValidator ZERO_TO_MANY = new CardinalityValidator(0, Integer.MAX_VALUE); 42 public static final FormValidator ZERO_TO_ONE = new CardinalityValidator(0, 1); 43 44 48 public CardinalityValidator(int min, int max) { 49 super(); 50 _min = min; 51 _max = max; 52 } 53 54 58 public CardinalityValidator(String ierrmsg, int min, int max) { 59 super(ierrmsg); 60 _min = min; 61 _max = max; 62 } 63 64 67 68 public void validateFormElement(Object val, FormElement element, boolean deferExceptions) throws ValidationException { 69 Object [] values = element.getVals(); 72 if (values.length < _min || values.length > _max) { 73 if (super.getErrorMessage()!=null) { 74 throw this.generateException(element, deferExceptions, super.getErrorMessage()); 75 } else { 76 throw this.generateException(element, deferExceptions, values.toString() 77 + " with length " + values.length 78 + " is not in the valid range [" + _min + ":" + _max + "]"); 79 } 80 81 } 82 } 83 84 } 85 | Popular Tags |