org.apache.commons.jxpath
Interface Pointer

All Known Implementing Classes:
NodePointer

public interface Pointer

Pointers represent locations of objects and their properties in Java object graphs. JXPathContext has methods (getPointer() and (iteratePointers(), which, given an XPath, produce Pointers for the objects or properties described the the path. For example, ctx.getPointer("foo/bar") will produce a Pointer that can get and set the property "bar" of the object which is the value of the property "foo" of the root object. The value of ctx.getPointer("aMap/aKey[3]") will be a pointer to the 3'rd element of the array, which is the value for the key "aKey" of the map, which is the value of the property "aMap" of the root object.

Version:
$Revision: 1.3 $ $Date: 2002/06/16 03:22:22 $
Author:
Dmitri Plotnikov

Method Summary
 java.lang.String asPath()
          Returns a string that is a proper "canonical" XPath that corresponds to this pointer.
 java.lang.Object getValue()
          Returns the value of the object, property or collection element this pointer represents.
 void setValue(java.lang.Object value)
          Modifies the value of the object, property or collection element this pointer represents.
 

Method Detail

getValue

public java.lang.Object getValue()
Returns the value of the object, property or collection element this pointer represents.


setValue

public void setValue(java.lang.Object value)
Modifies the value of the object, property or collection element this pointer represents.


asPath

public java.lang.String asPath()
Returns a string that is a proper "canonical" XPath that corresponds to this pointer. Consider this example:

Pointer ptr = ctx.getPointer("//employees[firstName = 'John']")

The value of ptr.asPath() will look something like "/departments[2]/employees[3]", so, basically, it represents the concrete location(s) of the result of a search performed by JXPath. If an object in the pointer's path is a Dynamic Property object (like a Map), the asPath method generates an XPath that looks like this: "/departments[@name = 'HR']/employees[3]".



Copyright (c) 2001 - Apache Software Foundation