Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.jdom.xpath
Class JaxenXPath  view JaxenXPath download JaxenXPath.java

java.lang.Object
  extended byorg.jdom.xpath.XPath
      extended byorg.jdom.xpath.JaxenXPath
All Implemented Interfaces:
java.io.Serializable

class JaxenXPath
extends XPath

A non-public concrete XPath implementation for Jaxen.

Version:
$Revision: 1.19 $, $Date: 2004/09/03 07:27:39 $

Nested Class Summary
private  class JaxenXPath.NSContext
           
 
Nested classes inherited from class org.jdom.xpath.XPath
 
Field Summary
private  java.lang.Object currentContext
          The current context for XPath expression evaluation.
private static java.lang.String CVS_ID
           
private  JDOMXPath xPath
          The compiled XPath object to select nodes.
 
Fields inherited from class org.jdom.xpath.XPath
 
Constructor Summary
JaxenXPath(java.lang.String expr)
          Creates a new XPath wrapper object, compiling the specified XPath expression.
 
Method Summary
 void addNamespace(org.jdom.Namespace namespace)
          Adds a namespace definition to the list of namespaces known of this XPath expression.
 boolean equals(java.lang.Object o)
          Determine whether this Object is semantically equal to another Object.
 java.lang.String getXPath()
          Returns the wrapped XPath expression as a string.
 int hashCode()
          Get a value that represents this Object, as uniquely as possible within the confines of an int.
 java.lang.Number numberValueOf(java.lang.Object context)
          Returns the number value of the first item selected by applying the wrapped XPath expression to the given context.
 java.util.List selectNodes(java.lang.Object context)
          Evaluates the wrapped XPath expression and returns the list of selected items.
 java.lang.Object selectSingleNode(java.lang.Object context)
          Evaluates the wrapped XPath expression and returns the first entry in the list of selected nodes (or atomics).
 void setVariable(java.lang.String name, java.lang.Object value)
          Defines an XPath variable and sets its value.
private  void setXPath(java.lang.String expr)
          Compiles and sets the XPath expression wrapped by this object.
 java.lang.String toString()
          Convert this Object to a human-readable String.
 java.lang.String valueOf(java.lang.Object context)
          Returns the string value of the first node selected by applying the wrapped XPath expression to the given context.
 
Methods inherited from class org.jdom.xpath.XPath
addNamespace, newInstance, selectNodes, selectSingleNode, setXPathClass, writeReplace
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CVS_ID

private static final java.lang.String CVS_ID
See Also:
Constant Field Values

xPath

private transient JDOMXPath xPath
The compiled XPath object to select nodes. This attribute can not be made final as it needs to be set upon object deserialization.


currentContext

private java.lang.Object currentContext
The current context for XPath expression evaluation.

Constructor Detail

JaxenXPath

public JaxenXPath(java.lang.String expr)
           throws org.jdom.JDOMException
Creates a new XPath wrapper object, compiling the specified XPath expression.

Method Detail

selectNodes

public java.util.List selectNodes(java.lang.Object context)
                           throws org.jdom.JDOMException
Evaluates the wrapped XPath expression and returns the list of selected items.

Specified by:
selectNodes in class XPath

selectSingleNode

public java.lang.Object selectSingleNode(java.lang.Object context)
                                  throws org.jdom.JDOMException
Evaluates the wrapped XPath expression and returns the first entry in the list of selected nodes (or atomics).

Specified by:
selectSingleNode in class XPath

valueOf

public java.lang.String valueOf(java.lang.Object context)
                         throws org.jdom.JDOMException
Returns the string value of the first node selected by applying the wrapped XPath expression to the given context.

Specified by:
valueOf in class XPath

numberValueOf

public java.lang.Number numberValueOf(java.lang.Object context)
                               throws org.jdom.JDOMException
Returns the number value of the first item selected by applying the wrapped XPath expression to the given context.

Specified by:
numberValueOf in class XPath

setVariable

public void setVariable(java.lang.String name,
                        java.lang.Object value)
                 throws java.lang.IllegalArgumentException
Defines an XPath variable and sets its value.

Specified by:
setVariable in class XPath

addNamespace

public void addNamespace(org.jdom.Namespace namespace)
Adds a namespace definition to the list of namespaces known of this XPath expression.

Note: In XPath, there is no such thing as a 'default namespace'. The empty prefix always resolves to the empty namespace URI.

Specified by:
addNamespace in class XPath

getXPath

public java.lang.String getXPath()
Returns the wrapped XPath expression as a string.

Specified by:
getXPath in class XPath

setXPath

private void setXPath(java.lang.String expr)
               throws org.jdom.JDOMException
Compiles and sets the XPath expression wrapped by this object.


toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


equals

public boolean equals(java.lang.Object o)
Description copied from class: java.lang.Object
Determine whether this Object is semantically equal to another Object.

There are some fairly strict requirements on this method which subclasses must follow:

  • It must be transitive. If a.equals(b) and b.equals(c), then a.equals(c) must be true as well.
  • It must be symmetric. a.equals(b) and b.equals(a) must have the same value.
  • It must be reflexive. a.equals(a) must always be true.
  • It must be consistent. Whichever value a.equals(b) returns on the first invocation must be the value returned on all later invocations.
  • a.equals(null) must be false.
  • It must be consistent with hashCode(). That is, a.equals(b) must imply a.hashCode() == b.hashCode(). The reverse is not true; two objects that are not equal may have the same hashcode, but that has the potential to harm hashing performance.

This is typically overridden to throw a java.lang.ClassCastException if the argument is not comparable to the class performing the comparison, but that is not a requirement. It is legal for a.equals(b) to be true even though a.getClass() != b.getClass(). Also, it is typical to never cause a java.lang.NullPointerException.

In general, the Collections API (java.util) use the equals method rather than the == operator to compare objects. However, java.util.IdentityHashMap is an exception to this rule, for its own good reasons.

The default implementation returns this == o.


hashCode

public int hashCode()
Description copied from class: java.lang.Object
Get a value that represents this Object, as uniquely as possible within the confines of an int.

There are some requirements on this method which subclasses must follow:

  • Semantic equality implies identical hashcodes. In other words, if a.equals(b) is true, then a.hashCode() == b.hashCode() must be as well. However, the reverse is not necessarily true, and two objects may have the same hashcode without being equal.
  • It must be consistent. Whichever value o.hashCode() returns on the first invocation must be the value returned on all later invocations as long as the object exists. Notice, however, that the result of hashCode may change between separate executions of a Virtual Machine, because it is not invoked on the same object.

Notice that since hashCode is used in java.util.Hashtable and other hashing classes, a poor implementation will degrade the performance of hashing (so don't blindly implement it as returning a constant!). Also, if calculating the hash is time-consuming, a class may consider caching the results.

The default implementation returns System.identityHashCode(this)