annotate gwt-client/src/main/java/org/dive4elements/river/client/server/auth/saml/XPathUtils.java @ 5939:407cff3b03ab

Add XPathUtils, helper functions to process SAML with XPath.
author Bernhard Herzog <bh@intevation.de>
date Wed, 08 May 2013 17:56:13 +0200
parents
children 7b0db743f074
rev   line source
5939
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt f�r Gew�sserkunde
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 *
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7 */
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.client.server.auth.saml;
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 import javax.xml.namespace.QName;
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12 import javax.xml.xpath.XPathConstants;
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14 import org.w3c.dom.Node;
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 import org.w3c.dom.NodeList;
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17 import org.dive4elements.artifacts.common.utils.XMLUtils;
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 /**
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21 * Convenience methods to evaluate XPath queries on SAML documents. The
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 * methods are just front-ends for the {@link XMLUtils.xpath} method.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23 */
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24 public class XPathUtils
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 {
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 /**
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 * Evaluates an XPath query on a given object and returns the result
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 * as a given type, using SamlNamespaceContext as the namespace
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 * context.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 * @param root The object which is used as the root of the tree to
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 * be searched in.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32 * @param query The XPath query
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 * @param returnType The type of the result.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 * @return The result of type 'returnType' or null if something
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35 * went wrong during XPath evaluation.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 */
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 public static final Object xpath(Object root, String query,
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 QName returnType) {
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 return XMLUtils.xpath(root, query, returnType,
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 SamlNamespaceContext.INSTANCE);
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 }
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 /**
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 * Evaluates an XPath query on a given object and returns the result
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 * as a String, using SamlNamespaceContext as the namespace context.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 * @param root The object which is used as the root of the tree to
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 * be searched in.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 * @param query The XPath query
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 * @return The result as a String or null if something went wrong
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51 * during XPath evaluation.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 */
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53 public static final String xpathString(Object root, String query) {
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54 return (String)xpath(root, query, XPathConstants.STRING);
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55 }
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58 /**
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59 * Evaluates an XPath query on a given object and returns the result
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60 * as a Node, using SamlNamespaceContext as the namespace context.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61 * @param root The object which is used as the root of the tree to
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62 * be searched in.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
63 * @param query The XPath query
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64 * @return The result as a Node or null if something went wrong
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65 * during XPath evaluation.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
66 */
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
67 public static final Node xpathNode(Object root, String query) {
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
68 return (Node)xpath(root, query, XPathConstants.NODE);
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
69 }
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
70
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
71
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
72 /**
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
73 * Evaluates an XPath query on a given object and returns the result
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
74 * as a NodeList, using SamlNamespaceContext as the namespace
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
75 * context.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
76 * @param root The object which is used as the root of the tree to
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
77 * be searched in.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
78 * @param query The XPath query
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
79 * @return The result as a NodeList or null if something
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
80 * went wrong during XPath evaluation.
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
81 */
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
82 public static final NodeList xpathNodeList(Object root, String query) {
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
83 return (NodeList)xpath(root, query, XPathConstants.NODESET);
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
84 }
407cff3b03ab Add XPathUtils, helper functions to process SAML with XPath.
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
85 }

http://dive4elements.wald.intevation.org