org.apache.lucene.expressions.js
Class JavascriptCompiler

java.lang.Object
  extended by org.apache.lucene.expressions.js.JavascriptCompiler

public class JavascriptCompiler
extends Object

An expression compiler for javascript expressions.

Example:

   Expression foo = JavascriptCompiler.compile("((0.3*popularity)/10.0)+(0.7*score)");
 

See the package documentation for the supported syntax and default functions.

You can compile with an alternate set of functions via compile(String, Map, ClassLoader). For example:

   Map<String,Method> functions = new HashMap<String,Method>();
   // add all the default functions
   functions.putAll(JavascriptCompiler.DEFAULT_FUNCTIONS);
   // add cbrt()
   functions.put("cbrt", Math.class.getMethod("cbrt", double.class));
   // call compile with customized function map
   Expression foo = JavascriptCompiler.compile("cbrt(score)+ln(popularity)", 
                                               functions, 
                                               getClass().getClassLoader());
 

WARNING: This API is experimental and might change in incompatible ways in the next release.

Field Summary
static Map<String,Method> DEFAULT_FUNCTIONS
          The default set of functions available to expressions.
 
Method Summary
static Expression compile(String sourceText)
          Compiles the given expression.
static Expression compile(String sourceText, Map<String,Method> functions, ClassLoader parent)
          Compiles the given expression with the supplied custom functions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_FUNCTIONS

public static final Map<String,Method> DEFAULT_FUNCTIONS
The default set of functions available to expressions.

See the package documentation for a list.

Method Detail

compile

public static Expression compile(String sourceText)
                          throws ParseException
Compiles the given expression.

Parameters:
sourceText - The expression to compile
Returns:
A new compiled expression
Throws:
ParseException - on failure to compile

compile

public static Expression compile(String sourceText,
                                 Map<String,Method> functions,
                                 ClassLoader parent)
                          throws ParseException
Compiles the given expression with the supplied custom functions.

Functions must be public static, return double and can take from zero to 256 double parameters.

Parameters:
sourceText - The expression to compile
functions - map of String names to functions
parent - a ClassLoader that should be used as the parent of the loaded class. It must contain all classes referred to by the given functions.
Returns:
A new compiled expression
Throws:
ParseException - on failure to compile


Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.