1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.opensaml.saml2.metadata.impl;
22
23 import org.opensaml.common.impl.AbstractSAMLObjectUnmarshaller;
24 import org.opensaml.saml2.metadata.AttributeConsumingService;
25 import org.opensaml.saml2.metadata.RequestedAttribute;
26 import org.opensaml.saml2.metadata.ServiceDescription;
27 import org.opensaml.saml2.metadata.ServiceName;
28 import org.opensaml.xml.XMLObject;
29 import org.opensaml.xml.io.UnmarshallingException;
30 import org.opensaml.xml.schema.XSBooleanValue;
31 import org.w3c.dom.Attr;
32
33
34
35
36 public class AttributeConsumingServiceUnmarshaller extends AbstractSAMLObjectUnmarshaller {
37
38
39 protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject)
40 throws UnmarshallingException {
41 AttributeConsumingService service = (AttributeConsumingService) parentSAMLObject;
42
43 if (childSAMLObject instanceof ServiceName) {
44 service.getNames().add((ServiceName) childSAMLObject);
45 } else if (childSAMLObject instanceof ServiceDescription) {
46 service.getDescriptions().add((ServiceDescription) childSAMLObject);
47 } else if (childSAMLObject instanceof RequestedAttribute) {
48 service.getRequestAttributes().add((RequestedAttribute) childSAMLObject);
49 } else {
50 super.processChildElement(parentSAMLObject, childSAMLObject);
51 }
52 }
53
54
55 protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException {
56 AttributeConsumingService service = (AttributeConsumingService) samlObject;
57
58 if (attribute.getLocalName().equals(AttributeConsumingService.INDEX_ATTRIB_NAME)) {
59 service.setIndex(Integer.valueOf(attribute.getValue()));
60 } else if (attribute.getLocalName().equals(AttributeConsumingService.IS_DEFAULT_ATTRIB_NAME)) {
61 service.setIsDefault(XSBooleanValue.valueOf(attribute.getValue()));
62 } else {
63 super.processAttribute(samlObject, attribute);
64 }
65 }
66 }