Mercurial > repos > pfrommolt > ngsrich
diff NGSrich_0.5.5/src/org/jdom/xpath/JaxenXPath.java @ 0:89ad0a9cca52 default tip
Uploaded
author | pfrommolt |
---|---|
date | Mon, 21 Nov 2011 08:12:19 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NGSrich_0.5.5/src/org/jdom/xpath/JaxenXPath.java Mon Nov 21 08:12:19 2011 -0500 @@ -0,0 +1,356 @@ +///*-- +// +// $Id: JaxenXPath.java,v 1.20 2007/11/10 05:29:02 jhunter Exp $ +// +// Copyright (C) 2000-2007 Jason Hunter & Brett McLaughlin. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions, and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions, and the disclaimer that follows +// these conditions in the documentation and/or other materials +// provided with the distribution. +// +// 3. The name "JDOM" must not be used to endorse or promote products +// derived from this software without prior written permission. For +// written permission, please contact <request_AT_jdom_DOT_org>. +// +// 4. Products derived from this software may not be called "JDOM", nor +// may "JDOM" appear in their name, without prior written permission +// from the JDOM Project Management <request_AT_jdom_DOT_org>. +// +// In addition, we request (but do not require) that you include in the +// end-user documentation provided with the redistribution and/or in the +// software itself an acknowledgement equivalent to the following: +// "This product includes software developed by the +// JDOM Project (http://www.jdom.org/)." +// Alternatively, the acknowledgment may be graphical using the logos +// available at http://www.jdom.org/images/logos. +// +// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. +// +// This software consists of voluntary contributions made by many +// individuals on behalf of the JDOM Project and was originally +// created by Jason Hunter <jhunter_AT_jdom_DOT_org> and +// Brett McLaughlin <brett_AT_jdom_DOT_org>. For more information +// on the JDOM Project, please see <http://www.jdom.org/>. +// +// */ +// +//package org.jdom.xpath; +// +// +//import java.util.*; +// +//import org.jaxen.*; +//import org.jaxen.jdom.*; +//import org.jdom.*; +// +// +///** +// * A non-public concrete XPath implementation for Jaxen. +// * +// * @version $Revision: 1.20 $, $Date: 2007/11/10 05:29:02 $ +// * @author Laurent Bihanic +// */ +//class JaxenXPath extends XPath { // package protected +// +// private static final String CVS_ID = +// "@(#) $RCSfile: JaxenXPath.java,v $ $Revision: 1.20 $ $Date: 2007/11/10 05:29:02 $ $Name: jdom_1_1_1 $"; +// +// /** +// * The compiled XPath object to select nodes. This attribute can +// * not be made final as it needs to be set upon object +// * deserialization. +// */ +// private transient JDOMXPath xPath; +// +// /** +// * The current context for XPath expression evaluation. +// */ +// private Object currentContext; +// +// /** +// * Creates a new XPath wrapper object, compiling the specified +// * XPath expression. +// * +// * @param expr the XPath expression to wrap. +// * +// * @throws JDOMException if the XPath expression is invalid. +// */ +// public JaxenXPath(String expr) throws JDOMException { +// setXPath(expr); +// } +// +// /** +// * Evaluates the wrapped XPath expression and returns the list +// * of selected items. +// * +// * @param context the node to use as context for evaluating +// * the XPath expression. +// * +// * @return the list of selected items, which may be of types: {@link Element}, +// * {@link Attribute}, {@link Text}, {@link CDATA}, +// * {@link Comment}, {@link ProcessingInstruction}, Boolean, +// * Double, or String. +// * +// * @throws JDOMException if the evaluation of the XPath +// * expression on the specified context +// * failed. +// */ +// public List selectNodes(Object context) throws JDOMException { +// try { +// currentContext = context; +// +// return xPath.selectNodes(context); +// } +// catch (JaxenException ex1) { +// throw new JDOMException("XPath error while evaluating \"" + +// xPath.toString() + "\": " + ex1.getMessage(), ex1); +// } +// finally { +// currentContext = null; +// } +// } +// +// /** +// * Evaluates the wrapped XPath expression and returns the first +// * entry in the list of selected nodes (or atomics). +// * +// * @param context the node to use as context for evaluating +// * the XPath expression. +// * +// * @return the first selected item, which may be of types: {@link Element}, +// * {@link Attribute}, {@link Text}, {@link CDATA}, +// * {@link Comment}, {@link ProcessingInstruction}, Boolean, +// * Double, String, or <code>null</code> if no item was selected. +// * +// * @throws JDOMException if the evaluation of the XPath +// * expression on the specified context +// * failed. +// */ +// public Object selectSingleNode(Object context) throws JDOMException { +// try { +// currentContext = context; +// +// return xPath.selectSingleNode(context); +// } +// catch (JaxenException ex1) { +// throw new JDOMException("XPath error while evaluating \"" + +// xPath.toString() + "\": " + ex1.getMessage(), ex1); +// } +// finally { +// currentContext = null; +// } +// } +// +// /** +// * Returns the string value of the first node selected by applying +// * the wrapped XPath expression to the given context. +// * +// * @param context the element to use as context for evaluating +// * the XPath expression. +// * +// * @return the string value of the first node selected by applying +// * the wrapped XPath expression to the given context. +// * +// * @throws JDOMException if the XPath expression is invalid or +// * its evaluation on the specified context +// * failed. +// */ +// public String valueOf(Object context) throws JDOMException { +// try { +// currentContext = context; +// +// return xPath.stringValueOf(context); +// } +// catch (JaxenException ex1) { +// throw new JDOMException("XPath error while evaluating \"" + +// xPath.toString() + "\": " + ex1.getMessage(), ex1); +// } +// finally { +// currentContext = null; +// } +// } +// +// /** +// * Returns the number value of the first item selected by applying +// * the wrapped XPath expression to the given context. +// * +// * @param context the element to use as context for evaluating +// * the XPath expression. +// * +// * @return the number value of the first item selected by applying +// * the wrapped XPath expression to the given context, +// * <code>null</code> if no node was selected or the +// * special value {@link java.lang.Double#NaN} +// * (Not-a-Number) if the selected value can not be +// * converted into a number value. +// * +// * @throws JDOMException if the XPath expression is invalid or +// * its evaluation on the specified context +// * failed. +// */ +// public Number numberValueOf(Object context) throws JDOMException { +// try { +// currentContext = context; +// +// return xPath.numberValueOf(context); +// } +// catch (JaxenException ex1) { +// throw new JDOMException("XPath error while evaluating \"" + +// xPath.toString() + "\": " + ex1.getMessage(), ex1); +// } +// finally { +// currentContext = null; +// } +// } +// +// /** +// * Defines an XPath variable and sets its value. +// * +// * @param name the variable name. +// * @param value the variable value. +// * +// * @throws IllegalArgumentException if <code>name</code> is not +// * a valid XPath variable name +// * or if the value type is not +// * supported by the underlying +// * implementation +// */ +// public void setVariable(String name, Object value) +// throws IllegalArgumentException { +// Object o = xPath.getVariableContext(); +// if (o instanceof SimpleVariableContext) { +// ((SimpleVariableContext)o).setVariableValue(null, name, value); +// } +// } +// +// /** +// * Adds a namespace definition to the list of namespaces known of +// * this XPath expression. +// * <p> +// * <strong>Note</strong>: In XPath, there is no such thing as a +// * 'default namespace'. The empty prefix <b>always</b> resolves +// * to the empty namespace URI.</p> +// * +// * @param namespace the namespace. +// */ +// public void addNamespace(Namespace namespace) { +// try { +// xPath.addNamespace(namespace.getPrefix(), namespace.getURI()); +// } +// catch (JaxenException ex1) { /* Can't happen here. */ } +// } +// +// /** +// * Returns the wrapped XPath expression as a string. +// * +// * @return the wrapped XPath expression as a string. +// */ +// public String getXPath() { +// return (xPath.toString()); +// } +// +// /** +// * Compiles and sets the XPath expression wrapped by this object. +// * +// * @param expr the XPath expression to wrap. +// * +// * @throws JDOMException if the XPath expression is invalid. +// */ +// private void setXPath(String expr) throws JDOMException { +// try { +// xPath = new JDOMXPath(expr); +// xPath.setNamespaceContext(new NSContext()); +// } +// catch (Exception ex1) { +// throw new JDOMException( +// "Invalid XPath expression: \"" + expr + "\"", ex1); +// } +// } +// +// public String toString() { +// return (xPath.toString()); +// } +// +// public boolean equals(Object o) { +// if (o instanceof JaxenXPath) { +// JaxenXPath x = (JaxenXPath)o; +// +// return (super.equals(o) && +// xPath.toString().equals(x.xPath.toString())); +// } +// return false; +// } +// +// public int hashCode() { +// return xPath.hashCode(); +// } +// +// private class NSContext extends SimpleNamespaceContext { +// public NSContext() { +// super(); +// } +// +// /** +// * <i>[Jaxen NamespaceContext interface support]</i> Translates +// * the provided namespace prefix into the matching bound +// * namespace URI. +// * +// * @param prefix the namespace prefix to resolve. +// * +// * @return the namespace URI matching the prefix. +// */ +// public String translateNamespacePrefixToUri(String prefix) { +// if ((prefix == null) || (prefix.length() == 0)) { +// return null; +// } +// +// String uri = super.translateNamespacePrefixToUri(prefix); +// if (uri == null) { +// Object ctx = currentContext; +// if (ctx != null) { +// Element elt = null; +// +// // Get closer element node +// if (ctx instanceof Element) { +// elt = (Element)ctx; +// } else if (ctx instanceof Attribute) { +// elt = ((Attribute)ctx).getParent(); +// } else if (ctx instanceof Content) { +// elt = ((Content) ctx).getParentElement(); +// } else if (ctx instanceof Document) { +// elt = ((Document)ctx).getRootElement(); +// } +// +// if (elt != null) { +// Namespace ns = elt.getNamespace(prefix); +// if (ns != null) { +// uri = ns.getURI(); +// } +// } +// } +// } +// return uri; +// } +// } +//} +