2.17.2: 2011-06-17

net.sf.basedb.util.jep
Interface JepRestrictionFunction

All Superinterfaces:
JepFunction, org.nfunk.jep.function.PostfixMathCommandI
All Known Implementing Classes:
InReporterListFunction, NotInReporterListFunction

public interface JepRestrictionFunction
extends JepFunction

This interface should be implemented by JEP functions that can also be converted into a Restriction that can be used in queries.

Version:
2.0
Author:
Nicklas
See Also:
Jep.formulaToRestriction(String, JepFunction[])
Last modified
$Date: 2009-06-26 09:37:02 +0200 (Fri, 26 Jun 2009) $

Method Summary
 Restriction toRestriction(Node node)
          Convert this function to a Restriction that can be used in a query.
 
Methods inherited from interface net.sf.basedb.util.jep.JepFunction
getFunctionName
 
Methods inherited from interface org.nfunk.jep.function.PostfixMathCommandI
checkNumberOfParameters, getNumberOfParameters, run, setCurNumberOfParameters
 

Method Detail

toRestriction

Restriction toRestriction(Node node)
Convert this function to a Restriction that can be used in a query. The implementation must check that the node contains the correct number of children (ie. arguments to the function) and convert the arguments to whatever is suitable for the restriction. Example from the InReporterListFunction: inList(list-id)
public Restriction toRestriction(Node node)
{
  int numChildren = node.jjtGetNumChildren();
  if (numChildren != 1)
  {
    throw new BaseException("Invalid number of expressions for 'inList' function: " + numChildren);
  }
  int reporterListId = Jep.nodeToInt(node.jjtGetChild(0));
  ReporterList list = ReporterList.getById(dc, reporterListId);
  return Dynamic.isPartOf(list);
}

Parameters:
node - The node representing this function
Returns:
A Restriction object

2.17.2: 2011-06-17