1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.xml.encryption.impl;
18
19 import org.opensaml.xml.XMLObject;
20 import org.opensaml.xml.encryption.AgreementMethod;
21 import org.opensaml.xml.encryption.KANonce;
22 import org.opensaml.xml.encryption.OriginatorKeyInfo;
23 import org.opensaml.xml.encryption.RecipientKeyInfo;
24 import org.opensaml.xml.io.UnmarshallingException;
25 import org.w3c.dom.Attr;
26
27
28
29
30 public class AgreementMethodUnmarshaller extends AbstractXMLEncryptionUnmarshaller {
31
32
33 protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
34 AgreementMethod am = (AgreementMethod) xmlObject;
35
36 if (attribute.getLocalName().equals(AgreementMethod.ALGORITHM_ATTRIBUTE_NAME)) {
37 am.setAlgorithm(attribute.getValue());
38 } else {
39 super.processAttribute(xmlObject, attribute);
40 }
41 }
42
43
44 protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
45 throws UnmarshallingException {
46 AgreementMethod am = (AgreementMethod) parentXMLObject;
47
48 if (childXMLObject instanceof KANonce) {
49 am.setKANonce((KANonce) childXMLObject);
50 } else if (childXMLObject instanceof OriginatorKeyInfo) {
51 am.setOriginatorKeyInfo((OriginatorKeyInfo) childXMLObject);
52 } else if (childXMLObject instanceof RecipientKeyInfo) {
53 am.setRecipientKeyInfo((RecipientKeyInfo) childXMLObject);
54 } else {
55 am.getUnknownXMLObjects().add(childXMLObject);
56 }
57 }
58
59 }