1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springmodules.validation.bean.conf.loader.xml.handler;
18
19 import org.springmodules.validation.bean.rule.AbstractValidationRule;
20 import org.springmodules.validation.bean.rule.ConditionReferenceValidationRule;
21 import org.w3c.dom.Element;
22 import org.springframework.context.ApplicationContextAware;
23 import org.springframework.context.ApplicationContext;
24 import org.springframework.beans.BeansException;
25
26
27
28
29
30
31
32
33 public class ConditionReferenceRuleElementHandler extends AbstractPropertyValidationElementHandler implements ApplicationContextAware {
34
35 private static final String ELEMENT_NAME = "condition-ref";
36
37 private static final String NAME_ATTR = "name";
38
39 private ApplicationContext applicationContext;
40
41 public ConditionReferenceRuleElementHandler(String namespace) {
42 super(ELEMENT_NAME, namespace);
43 }
44
45 protected AbstractValidationRule createValidationRule(Element element) {
46 if (applicationContext == null) {
47 throw new UnsupportedOperationException("This handler can only be used when deployed within a " +
48 "spring application context");
49 }
50 String beanName = element.getAttribute(NAME_ATTR);
51 return new ConditionReferenceValidationRule(beanName, applicationContext);
52 }
53
54
55
56 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
57 this.applicationContext = applicationContext;
58 }
59 }