1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.samlext.saml2mdquery.impl;
18
19 import org.opensaml.saml2.metadata.NameIDFormat;
20 import org.opensaml.saml2.metadata.impl.RoleDescriptorUnmarshaller;
21 import org.opensaml.samlext.saml2mdquery.QueryDescriptorType;
22 import org.opensaml.xml.XMLObject;
23 import org.opensaml.xml.io.UnmarshallingException;
24 import org.opensaml.xml.schema.XSBooleanValue;
25 import org.w3c.dom.Attr;
26
27
28 public class QueryDescriptorTypeUnmarshaller extends RoleDescriptorUnmarshaller {
29
30
31 protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject)
32 throws UnmarshallingException {
33 QueryDescriptorType descriptor = (QueryDescriptorType) parentSAMLObject;
34
35 if (childSAMLObject instanceof NameIDFormat) {
36 descriptor.getNameIDFormat().add((NameIDFormat) childSAMLObject);
37 } else {
38 super.processChildElement(parentSAMLObject, childSAMLObject);
39 }
40 }
41
42
43 protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException {
44 QueryDescriptorType descriptor = (QueryDescriptorType) samlObject;
45
46 if (attribute.getLocalName().equals(QueryDescriptorType.WANT_ASSERTIONS_SIGNED_ATTRIB_NAME)) {
47 descriptor.setWantAssertionsSigned(XSBooleanValue.valueOf(attribute.getValue()));
48 } else {
49 super.processAttribute(samlObject, attribute);
50 }
51 }
52 }