1 package org.sapia.validator; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 5 6 import org.sapia.util.xml.confix.ConfigurationException; 7 import org.sapia.util.xml.confix.ObjectHandlerIF; 8 9 19 public class CompositeRule extends Rule implements ObjectHandlerIF { 20 private List _rules = new ArrayList (); 21 protected boolean _stop = true; 22 23 26 public CompositeRule() { 27 } 28 29 34 public void addValidatable(Validatable v) { 35 _rules.add(v); 36 } 37 38 54 public void setStop(boolean stop) { 55 _stop = stop; 56 } 57 58 63 public RuleSet createRuleSet() { 64 RuleSet rs = new RuleSet(); 65 66 _rules.add(rs); 67 68 return rs; 69 } 70 71 74 public void handleObject(String name, Object validatable) 75 throws ConfigurationException { 76 if (validatable instanceof Validatable) { 77 addValidatable((Validatable) validatable); 78 } else { 79 throw new ConfigurationException("Unexpected element: " + name + " at " + qualifiedName()); 80 } 81 } 82 83 86 public void validate(ValidationContext ctx) { 87 Validatable current; 88 boolean valid = true; 89 90 for (int i = 0; i < _rules.size(); i++) { 91 current = (Validatable) _rules.get(i); 92 93 current.validate(ctx); 94 95 if (ctx.getStatus().isError() && _stop) { 96 break; 97 } 98 } 99 } 100 } 101 | Popular Tags |