1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package edu.internet2.middleware.shibboleth.wayf.idpdisco;
18
19 import org.opensaml.common.impl.AbstractSAMLObjectUnmarshaller;
20 import org.opensaml.common.xml.SAMLConstants;
21 import org.opensaml.saml2.metadata.LocalizedString;
22 import org.opensaml.xml.LangBearing;
23 import org.opensaml.xml.XMLObject;
24 import org.opensaml.xml.io.UnmarshallingException;
25 import org.w3c.dom.Attr;
26
27
28
29
30 public class LogoUnmarshaller extends AbstractSAMLObjectUnmarshaller {
31
32
33
34 protected void processElementContent(XMLObject samlObject, String elementContent) {
35 Logo logo = (Logo) samlObject;
36
37 LocalizedString url = logo.getURL();
38 if (url == null) {
39 url = new LocalizedString();
40 }
41
42 url.setLocalizedString(elementContent);
43 logo.setURL(url);
44 }
45
46
47 protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException {
48 Logo logo = (Logo) samlObject;
49
50 if (attribute.getLocalName().equals(LangBearing.XML_LANG_ATTR_LOCAL_NAME)
51 && SAMLConstants.XML_NS.equals(attribute.getNamespaceURI())) {
52
53 LocalizedString url = logo.getURL();
54 if (url == null) {
55 url = new LocalizedString();
56 }
57
58 url.setLanguage(attribute.getValue());
59 logo.setURL(url);
60 } else if (attribute.getLocalName().equals(Logo.HEIGHT_ATTR_NAME)) {
61 logo.setHeight(Integer.valueOf(attribute.getValue()));
62 } else if (attribute.getLocalName().equals(Logo.WIDTH_ATTR_NAME)) {
63 logo.setWidth(Integer.valueOf(attribute.getValue()));
64 }
65 }
66
67 }