dmolony-DiskBrowser/src/com/bytezone/diskbrowser/visicalc/ValueFunction.java

42 lines
741 B
Java
Raw Normal View History

2017-03-19 23:21:10 +00:00
package com.bytezone.diskbrowser.visicalc;
public abstract class ValueFunction extends Function
{
2017-03-20 01:45:14 +00:00
protected Value source;
2017-03-25 08:02:02 +00:00
abstract double calculateValue ();
2017-03-19 23:21:10 +00:00
ValueFunction (Cell cell, String text)
{
super (cell, text);
source = cell.getExpressionValue (functionText);
values.add (source);
2017-03-26 09:16:36 +00:00
valueType = ValueType.NUMBER;
2017-03-19 23:21:10 +00:00
}
@Override
public void calculate ()
{
2017-03-23 13:30:41 +00:00
valueResult = ValueResult.VALID;
2017-03-19 23:21:10 +00:00
source.calculate ();
2017-03-23 13:30:41 +00:00
if (!source.isValid ())
2017-03-19 23:21:10 +00:00
{
2017-03-23 13:30:41 +00:00
valueResult = source.getValueResult ();
2017-03-19 23:21:10 +00:00
return;
}
2017-03-20 01:45:14 +00:00
value = calculateValue ();
2017-03-23 13:30:41 +00:00
if (Double.isNaN (value))
valueResult = ValueResult.ERROR;
2017-03-19 23:21:10 +00:00
}
2017-03-23 13:30:41 +00:00
@Override
public String getType ()
{
return "ValueFunction";
}
2017-03-19 23:21:10 +00:00
}