2016-03-09 10:38:53 +00:00
|
|
|
package com.bytezone.diskbrowser.visicalc;
|
|
|
|
|
2016-03-11 21:56:02 +00:00
|
|
|
class Number implements Value
|
2016-03-09 10:38:53 +00:00
|
|
|
{
|
2016-03-16 19:32:25 +00:00
|
|
|
private double value;
|
|
|
|
private ValueType valueType;
|
2016-03-09 10:38:53 +00:00
|
|
|
|
2016-03-11 21:56:02 +00:00
|
|
|
public Number (String text)
|
2016-03-09 10:38:53 +00:00
|
|
|
{
|
2016-03-11 21:56:02 +00:00
|
|
|
try
|
|
|
|
{
|
2016-03-16 06:15:39 +00:00
|
|
|
value = Double.parseDouble (text);
|
2016-03-17 04:40:43 +00:00
|
|
|
valueType = ValueType.VALUE;
|
2016-03-11 21:56:02 +00:00
|
|
|
}
|
|
|
|
catch (NumberFormatException e)
|
|
|
|
{
|
2016-03-16 19:32:25 +00:00
|
|
|
valueType = ValueType.ERROR;
|
2016-03-11 21:56:02 +00:00
|
|
|
}
|
2016-03-09 10:38:53 +00:00
|
|
|
}
|
|
|
|
|
2016-03-17 04:40:43 +00:00
|
|
|
@Override
|
|
|
|
public boolean isValue ()
|
|
|
|
{
|
|
|
|
return valueType == ValueType.VALUE;
|
|
|
|
}
|
|
|
|
|
2016-03-09 10:38:53 +00:00
|
|
|
@Override
|
2016-03-16 06:15:39 +00:00
|
|
|
public boolean isError ()
|
2016-03-09 10:38:53 +00:00
|
|
|
{
|
2016-03-16 19:32:25 +00:00
|
|
|
return valueType == ValueType.ERROR;
|
2016-03-16 06:15:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-03-17 04:40:43 +00:00
|
|
|
public boolean isNotAvailable ()
|
2016-03-16 06:15:39 +00:00
|
|
|
{
|
2016-03-17 04:40:43 +00:00
|
|
|
return valueType == ValueType.NA;
|
2016-03-16 06:15:39 +00:00
|
|
|
}
|
|
|
|
|
2016-07-21 11:28:22 +00:00
|
|
|
@Override
|
|
|
|
public boolean isNotANumber ()
|
|
|
|
{
|
|
|
|
return valueType == ValueType.NAN;
|
|
|
|
}
|
|
|
|
|
2016-03-16 06:15:39 +00:00
|
|
|
@Override
|
|
|
|
public String toString ()
|
|
|
|
{
|
|
|
|
return String.format ("Number: %f", value);
|
2016-03-09 10:38:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-03-12 05:05:50 +00:00
|
|
|
public double getValue ()
|
2016-03-09 10:38:53 +00:00
|
|
|
{
|
2016-03-12 05:05:50 +00:00
|
|
|
return value;
|
2016-03-09 10:38:53 +00:00
|
|
|
}
|
2016-03-11 21:56:02 +00:00
|
|
|
|
|
|
|
@Override
|
2016-03-16 06:15:39 +00:00
|
|
|
public String getText ()
|
2016-03-11 21:56:02 +00:00
|
|
|
{
|
2016-07-21 11:28:22 +00:00
|
|
|
return isNotAvailable () ? "NA" : isError () ? "Error" : isNotANumber () ? "NaN" : "";
|
|
|
|
// return valueType == ValueType.ERROR ? "Error" : "";
|
2016-03-11 21:56:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-03-17 04:40:43 +00:00
|
|
|
public Value calculate ()
|
2016-03-11 21:56:02 +00:00
|
|
|
{
|
2016-03-17 04:40:43 +00:00
|
|
|
return this;
|
2016-03-11 21:56:02 +00:00
|
|
|
}
|
2016-03-16 19:32:25 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public ValueType getValueType ()
|
|
|
|
{
|
2016-03-17 04:40:43 +00:00
|
|
|
return valueType;
|
2016-03-16 19:32:25 +00:00
|
|
|
}
|
2016-03-09 10:38:53 +00:00
|
|
|
}
|