/* * Copyright 2011 cruxframework.org. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.cruxframework.crux.core.declarativeui; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.xml.namespace.NamespaceContext; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; /** * @author Thiago da Rosa de Bustamante * */ public class XPathUtils { /** * @return */ public static XPath getCruxPagesXPath() { XPathFactory factory = XPathFactory.newInstance(); XPath findPath = factory.newXPath(); findPath.setNamespaceContext(new NamespaceContext() { public String getNamespaceURI(String prefix) { if (prefix.equals("c")) { return "http://www.cruxframework.org/crux"; } else if (prefix.equals("v")) { return "http://www.cruxframework.org/view"; } return ""; } public String getPrefix(String namespaceURI) { if (namespaceURI.equals("http://www.cruxframework.org/crux")) { return "c"; } else if (namespaceURI.equals("http://www.cruxframework.org/view")) { return "v"; } return ""; } public Iterator<?> getPrefixes(String namespaceURI) { List<String> prefixes = new ArrayList<String>(); prefixes.add("c"); prefixes.add("v"); return prefixes.iterator(); } }); return findPath; } /** * @return */ public static XPath getHtmlXPath() { XPathFactory factory = XPathFactory.newInstance(); XPath htmlPath = factory.newXPath(); htmlPath.setNamespaceContext(new NamespaceContext() { public String getNamespaceURI(String prefix) { return "http://www.w3.org/1999/xhtml"; } public String getPrefix(String namespaceURI) { return "h"; } public Iterator<?> getPrefixes(String namespaceURI) { List<String> prefixes = new ArrayList<String>(); prefixes.add("h"); return prefixes.iterator(); } }); return htmlPath; } }