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:
Last modified
$Date: 2009-06-26 09:37:02 +0200 (fr, 26 jun 2009) $
  • Method Summary

    Modifier and Type
    Method
    Description
    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 Details

    • 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