Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.jxpath
Class PackageFunctions

    java.lang.Object
      |
      +--org.apache.commons.jxpath.PackageFunctions

All Implemented Interfaces:
  Functions

public class PackageFunctions
extends java.lang.Object
implements Functions

Extension functions provided by Java classes. The class prefix specified in the constructor is used when a constructor or a static method is called. Usually, a class prefix is a package name (hence the name of this class). Let's say, we declared a PackageFunction like this:

>          new PackageFunctions("java.util.", "util")

We can now use XPaths like:

`"util:Date.new()"`
  Equivalent to `new java.util.Date()`
`"util:Collections.singleton('foo')"`
  Equivalent to `java.util.Collections.singleton("foo")`
`"util:substring('foo', 1, 2)"`
  Equivalent to `"foo".substring(1, 2)`. Note that in this case, the class prefix is not used. JXPath does not check that the first parameter of the function (the method target) is in fact a member of the package described by this PackageFunctions object.

If the first argument of a method or constructor is ExpressionContext, the expression context in which the function is evaluated is passed to the method.

There is one PackageFunctions object registered by default with each JXPathContext. It does not have a namespace and uses no class prefix. The existence of this object allows us to use XPaths like: `"java.util.Date.new()"` and `"length('foo')"` without the explicit registration of any extension functions.

Version:
  $Revision: 1.10 $ $Date: 2003/03/11 00:59:12 $
Author:
  Dmitri Plotnikov

Constructor Summary
`PackageFunctions(java.lang.String classPrefix, java.lang.String namespace)`

Method Summary
`Function` | `getFunction(java.lang.String namespace, java.lang.String name, java.lang.Object[] parameters)` Returns a Function, if any, for the specified namespace, name and parameter types.
`java.util.Set` | `getUsedNamespaces()` Returns the namespace specified in the constructor

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PackageFunctions

    public PackageFunctions(java.lang.String classPrefix,
                            java.lang.String namespace)

Method Detail

### getUsedNamespaces

    public java.util.Set getUsedNamespaces()

  Returns the namespace specified in the constructor
  Specified by:
    `getUsedNamespaces` in interface `Functions`

### getFunction

    public Function getFunction(java.lang.String namespace,
                                java.lang.String name,
                                java.lang.Object[] parameters)

  Returns a Function, if any, for the specified namespace, name and parameter types.

  Specified by:
    `getFunction` in interface `Functions`
  Parameters:
    `namespace` - - if it is not the same as specified in the construction, this method returns null
    `name` - - name of the method, which can one these forms:
    - methodname, if invoking a method on an object passed as the first parameter
    - Classname.new, if looking for a constructor
    - subpackage.subpackage.Classname.new, if looking for a constructor in a subpackage
    - Classname.methodname, if looking for a static method
    - subpackage.subpackage.Classname.methodname, if looking for a static method of a class in a subpackage
  Returns:
    a MethodFunction, a ConstructorFunction or null if no function is found

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2003 Apache Software Foundation. All Rights Reserved.