Class ColFunction

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

public class ColFunction
extends Object
implements JepFunction
Adds a col() function to Jep. The col function is used with the FlatFileParser to get the value of a data column. The argument to the col function is either the column name or index (0-based). Use the FlatFileParser.getMapper(String) with an argument starting with an equal sign to create a mapper that uses Jep.
FlatFileParser ffp = ...
Mapper diameterMapper = ffp.getMapper("=col('Radius') * 2");
while (ffp.hasMoreData())
{
        Data data = ffp.nextData();
        float diameter = diameterMapper.getFloat(data);
}
Version:
2.0
Author:
nicklas
Last modified
$Date: 2019-03-21 13:37:48 +0100 (tors, 21 mars 2019) $
  • Field Details

  • Constructor Details

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

      public void setIgnoreNonExistingColumns​(boolean ignoreNonExistingColumns)
      Set to TRUE to ignore non-existing columns. Set to FALSE to throw an exception (default).
      Since:
      2.6
    • setData

      public void setData​(FlatFileParser.Data data, Type valueType)
    • findColumn

      private Integer findColumn​(String regex)
      Find column index by checking each column header against a regular expression. The first match found is returned. The map is updated with a new regex -> index entry.
      Returns:
      The column index or null if no column is found or if the string is not a valid regular expression