2.17.2: 2011-06-17

net.sf.basedb.util.jep
Class InReporterListFunction

java.lang.Object
  extended by net.sf.basedb.util.jep.InReporterListFunction
All Implemented Interfaces:
JepFunction, JepRestrictionFunction, org.nfunk.jep.function.PostfixMathCommandI

public class InReporterListFunction
extends Object
implements JepRestrictionFunction

A JEP function class that adds a inList(reporterListId) function to a JEP expression parser. The function will check if a reporter exists in the reporter list with the ID given as an argument to this function.

To be able to use this function it must be registered with the JEP parser and, before the expression is evaluated, a SqlResult object must be set.

Version:
2.0
Author:
Nicklas
See Also:
Jep, BioAssaySetUtil.createJepRestriction(DbControl, String, DynamicQuery)
Last modified
$Date: 2010-08-13 10:50:27 +0200 (Fri, 13 Aug 2010) $

Field Summary
private  DbControl dc
           
private  int numParameters
           
 
Constructor Summary
InReporterListFunction(DbControl dc)
          Create a new instance of this function.
 
Method Summary
 boolean checkNumberOfParameters(int n)
           
 String getFunctionName()
          Get the name of this function.
 int getNumberOfParameters()
           
 void run(Stack stack)
           
 void setCurNumberOfParameters(int n)
           
 Restriction toRestriction(Node node)
          Use the Dynamic.isPartOf(ReporterList) method to create a restriction checking that a reporter is found in the reporter list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dc

private DbControl dc

numParameters

private int numParameters
Constructor Detail

InReporterListFunction

public InReporterListFunction(DbControl dc)
Create a new instance of this function. The new instance cannot be used to dynamically evaluate expressions. It should only be used for converting JEP formulas to Restriction:s.

Parameters:
dc - DbControl used to access database.
See Also:
Jep.formulaToRestriction(String, JepFunction[])
Method Detail

getFunctionName

public String getFunctionName()
Description copied from interface: JepFunction
Get the name of this function. It is used when registering the function with a JEP parser.

Specified by:
getFunctionName in interface JepFunction
Returns:
The string "inList"
See Also:
JEP.addFunction(String, PostfixMathCommandI)

toRestriction

public Restriction toRestriction(Node node)
Use the Dynamic.isPartOf(ReporterList) method to create a restriction checking that a reporter is found in the reporter list.

Specified by:
toRestriction in interface JepRestrictionFunction
Parameters:
node - The node representing this function
Returns:
A Restriction object

getNumberOfParameters

public int getNumberOfParameters()
Specified by:
getNumberOfParameters in interface org.nfunk.jep.function.PostfixMathCommandI
Returns:
Always 1

setCurNumberOfParameters

public void setCurNumberOfParameters(int n)
Specified by:
setCurNumberOfParameters in interface org.nfunk.jep.function.PostfixMathCommandI

checkNumberOfParameters

public boolean checkNumberOfParameters(int n)
Specified by:
checkNumberOfParameters in interface org.nfunk.jep.function.PostfixMathCommandI

run

public void run(Stack stack)
         throws ParseException
Specified by:
run in interface org.nfunk.jep.function.PostfixMathCommandI
Throws:
ParseException

2.17.2: 2011-06-17