1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.ws.wsaddressing.util;
18
19 import org.opensaml.ws.wsaddressing.IsReferenceParameterBearing;
20 import org.opensaml.xml.AttributeExtensibleXMLObject;
21 import org.opensaml.xml.XMLObject;
22 import org.opensaml.xml.schema.XSBooleanValue;
23 import org.opensaml.xml.util.DatatypeHelper;
24
25
26
27
28 public final class WSAddressingHelper {
29
30
31
32
33 private WSAddressingHelper() {
34 }
35
36
37
38
39
40
41
42 public static void addWSAIsReferenceParameter(XMLObject soapObject, boolean isReferenceParameter) {
43 if (soapObject instanceof IsReferenceParameterBearing) {
44 ((IsReferenceParameterBearing)soapObject).setWSAIsReferenceParameter(
45 new XSBooleanValue(isReferenceParameter, false));
46 } else if (soapObject instanceof AttributeExtensibleXMLObject) {
47 ((AttributeExtensibleXMLObject)soapObject).getUnknownAttributes()
48 .put(IsReferenceParameterBearing.WSA_IS_REFERENCE_PARAMETER_ATTR_NAME,
49 new XSBooleanValue(isReferenceParameter, false).toString());
50 } else {
51 throw new IllegalArgumentException("Specified object was neither IsReferenceParameterBearing nor AttributeExtensible");
52 }
53 }
54
55
56
57
58
59
60
61
62 public static boolean getWSAIsReferenceParameter(XMLObject soapObject) {
63 if (soapObject instanceof IsReferenceParameterBearing) {
64 XSBooleanValue value = ((IsReferenceParameterBearing)soapObject).isWSAIsReferenceParameterXSBoolean();
65 if (value != null) {
66 return value.getValue();
67 }
68 }
69 if (soapObject instanceof AttributeExtensibleXMLObject) {
70 String valueStr = DatatypeHelper.safeTrimOrNullString(((AttributeExtensibleXMLObject)soapObject)
71 .getUnknownAttributes().get(IsReferenceParameterBearing.WSA_IS_REFERENCE_PARAMETER_ATTR_NAME));
72 return DatatypeHelper.safeEquals("1", valueStr) || DatatypeHelper.safeEquals("true", valueStr);
73 }
74 return false;
75 }
76
77 }