File: NokogiriXPathFunctionResolver.java

package info (click to toggle)
ruby-nokogiri 1.13.10%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 7,416 kB
  • sloc: ansic: 38,198; xml: 28,086; ruby: 22,271; java: 15,517; cpp: 7,037; yacc: 244; sh: 148; makefile: 136
file content (50 lines) | stat: -rw-r--r-- 1,066 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package nokogiri.internals;

import javax.xml.namespace.QName;
import javax.xml.xpath.XPathFunction;
import javax.xml.xpath.XPathFunctionResolver;

import org.jruby.runtime.builtin.IRubyObject;

/**
 * Xpath function resolver class, which is used in XmlXpathContext.
 *
 * @author sergio
 * @author Yoko Harada <yokolet@gmail.com>
 */
public final class NokogiriXPathFunctionResolver implements XPathFunctionResolver
{

  private IRubyObject handler;

  public static NokogiriXPathFunctionResolver
  create(IRubyObject handler)
  {
    NokogiriXPathFunctionResolver freshResolver = new NokogiriXPathFunctionResolver();
    if (!handler.isNil()) {
      freshResolver.setHandler(handler);
    }
    return freshResolver;
  }

  private
  NokogiriXPathFunctionResolver() {}

  public final IRubyObject
  getHandler()
  {
    return handler;
  }

  public void
  setHandler(IRubyObject handler)
  {
    this.handler = handler;
  }

  public XPathFunction
  resolveFunction(QName name, int arity)
  {
    return NokogiriXPathFunction.create(handler, name, arity);
  }
}