public class MeanFunction extends Object implements JepExpressionFunction
mean(string)
function to a
JEP expression parser. The function will calculate the mean value of the raw data
property with the given name. For example:
mean('ch1BgMean')
To be able to use this function it must be registered with the JEP parser and, before the expression is evaluated, a rawbioassay object must be set. For example we can evaluate an expression for every raw data object in a raw bioassay:
DbControl dc = ... RawBioAssay assay = ... String expression = "raw('ch1FgMean') - mean('ch1BgMean')"; RawFunction raw = new RawFunction(assay.getRawDataType()); MeanFunction mean = new MeanFunction(assay); JEP jep = JepUtil.newJep(expression, raw, mean); DataResultIterator<RawData> result = assay.getRawData().iterate(dc); while (result.hasNext()) { raw.setRawData(result.next()); double value = jep.getValue(); // Do something with the value } result.close();
Jep
Modifier and Type | Field and Description |
---|---|
private DbControl |
dc |
private Map<String,Float> |
means
Holds a cache of the values.
|
private int |
numParameters |
private RawBioAssay |
rawBioAssay |
private RawData |
rawData |
Constructor and Description |
---|
MeanFunction(DbControl dc)
Create a new instance of this function working with raw data of
the specified raw bio assay.
|
Modifier and Type | Method and Description |
---|---|
boolean |
checkNumberOfParameters(int n) |
String |
getFunctionName()
Get the name of this function.
|
int |
getNumberOfParameters() |
RawData |
getRawData()
Get the current raw data object used when evaluating the JEP expression.
|
float |
mean(String propertyName)
Get the value of the specified property of the current raw data object.
|
void |
run(Stack stack) |
void |
setCurNumberOfParameters(int n) |
void |
setRawData(RawData rawData)
Set a new raw data object that will be used the next time the
JEP expression is evaluated.
|
Expression |
toExpression(Node node)
Use the
Dynamic.meanRawData(String) method to create an
expression for the mean of the given raw data property. |
private final DbControl dc
private int numParameters
private RawBioAssay rawBioAssay
private RawData rawData
public MeanFunction(DbControl dc)
dc
- DbControl used in this functionpublic String getFunctionName()
JepFunction
JEP
parser.getFunctionName
in interface JepFunction
JEP.addFunction(String, PostfixMathCommandI)
public Expression toExpression(Node node)
Dynamic.meanRawData(String)
method to create an
expression for the mean of the given raw data property.toExpression
in interface JepExpressionFunction
node
- The node representing this functionExpression
objectpublic int getNumberOfParameters()
getNumberOfParameters
in interface org.nfunk.jep.function.PostfixMathCommandI
public void setCurNumberOfParameters(int n)
setCurNumberOfParameters
in interface org.nfunk.jep.function.PostfixMathCommandI
public boolean checkNumberOfParameters(int n)
checkNumberOfParameters
in interface org.nfunk.jep.function.PostfixMathCommandI
public void run(Stack stack) throws ParseException
run
in interface org.nfunk.jep.function.PostfixMathCommandI
ParseException
public void setRawData(RawData rawData)
rawData
- The raw data object to usepublic RawData getRawData()
public float mean(String propertyName) throws ParseException
propertyName
- The name of the raw data property. Null is not allowed.ParseException
- If the property name is null or
if there is another error.