1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package edu.internet2.middleware.shibboleth.common.config.attribute.filtering.match.basic;
19
20 import javax.xml.namespace.QName;
21
22 import org.opensaml.xml.util.DatatypeHelper;
23 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
24 import org.w3c.dom.Element;
25
26 import edu.internet2.middleware.shibboleth.common.attribute.filtering.provider.match.basic.NumOfAttributeValuesMatchFunctor;
27 import edu.internet2.middleware.shibboleth.common.config.attribute.filtering.BaseFilterBeanDefinitionParser;
28
29
30
31
32 public class NumOfAttributeValuesMatchFunctorBeanDefinitionParser extends BaseFilterBeanDefinitionParser {
33
34
35 public static final QName SCHEMA_TYPE = new QName(BasicMatchFunctorNamespaceHandler.NAMESPACE,
36 "NumberOfAttributeValues");
37
38
39 protected Class getBeanClass(Element arg0) {
40 return NumOfAttributeValuesMatchFunctor.class;
41 }
42
43
44 protected void doParse(Element configElement, BeanDefinitionBuilder builder) {
45 super.doParse(configElement, builder);
46
47 builder.addConstructorArgValue(DatatypeHelper.safeTrimOrNullString(configElement.getAttributeNS(null,
48 "attributeID")));
49
50 if (configElement.hasAttributeNS(null, "minimum")) {
51 builder.addConstructorArgValue(DatatypeHelper.safeTrimOrNullString(configElement.getAttributeNS(null,
52 "minimum")));
53 } else {
54 builder.addConstructorArgValue(0);
55 }
56
57 if (configElement.hasAttributeNS(null, "maximum")) {
58 builder.addConstructorArgValue(DatatypeHelper.safeTrimOrNullString(configElement.getAttributeNS(null,
59 "maximum")));
60 } else {
61 builder.addConstructorArgValue(Integer.MAX_VALUE);
62 }
63 }
64 }