Class ExtraValueFunction

java.lang.Object
net.sf.basedb.util.jep.ExtraValueFunction
All Implemented Interfaces:
JepExpressionFunction, JepFunction, org.nfunk.jep.function.PostfixMathCommandI

public class ExtraValueFunction
extends Object
implements JepExpressionFunction
A JEP function class that adds a xtra(int) function to a JEP expression parser. The function will look up the value of the extra value with the given ID. For example: xtra(1)

To be able to use this function it must be registered with the JEP parser.

Version:
2.0
Author:
Nicklas
See Also:
Jep, BioAssaySetUtil.createJepExpression(DbControl, String, DynamicQuery)
Last modified
$Date: 2015-04-20 11:08:18 +0200 (må, 20 apr 2015) $
  • Field Details

  • Constructor Details

    • ExtraValueFunction

      public ExtraValueFunction​(DbControl dc, BioAssaySet bas)
      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 Expression:s.
      Parameters:
      dc - DbControl to use when accessing the database
      bas - Bioassay set for this extra value function.
      See Also:
      Jep.formulaToExpression(String, JepFunction[])
    • ExtraValueFunction

      public ExtraValueFunction​(DbControl dc, Map<Integer,​Integer> extraToIndex)
      Create a new instance of this function which can be used to dynamically evaluate expressions.
      Parameters:
      dc - DbControl to use when accessing the database
      extraToIndex - An map from extra value ID to column indexes in the SqlResult
      See Also:
      setSqlResult(SqlResult)
  • Method Details

    • 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 "xtra"
      See Also:
      JEP.addFunction(String, PostfixMathCommandI)
    • toExpression

      public Expression toExpression​(Node node)
      Use the Dynamic.extraValue(ExtraValue) method to create an expression referencing an extra value.
      Specified by:
      toExpression in interface JepExpressionFunction
      Parameters:
      node - The node representing this function
      Returns:
      An Expression 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
    • setSqlResult

      public void setSqlResult​(SqlResult result)
      Set a new SqlResult object that will be used the next time the JEP expression is evaluated.
      Parameters:
      result - The result object
    • xtra

      public Object xtra​(Integer extraId) throws ParseException
      Get the value of the specified extra value of the current sql result.
      Parameters:
      extraId - The extra value ID
      Returns:
      an extra value as an Object.
      Throws:
      ParseException - If no result has been specified or if no extra value was found.