Controlled instantiation of BoolPtg (made consistent with ErrPtg)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@887477 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9fb5841de3
commit
1992068d14
@ -22,22 +22,29 @@ import org.apache.poi.util.LittleEndianOutput;
|
||||
|
||||
/**
|
||||
* Boolean (boolean) Stores a (java) boolean value in a formula.
|
||||
*
|
||||
*
|
||||
* @author Paul Krause (pkrause at soundbite dot com)
|
||||
* @author Andrew C. Oliver (acoliver at apache dot org)
|
||||
* @author Jason Height (jheight at chariot dot net dot au)
|
||||
*/
|
||||
public final class BoolPtg extends ScalarConstantPtg {
|
||||
public final static int SIZE = 2;
|
||||
public final static byte sid = 0x1D;
|
||||
public static final int SIZE = 2;
|
||||
public static final byte sid = 0x1D;
|
||||
|
||||
private static final BoolPtg FALSE = new BoolPtg(false);
|
||||
private static final BoolPtg TRUE = new BoolPtg(true);
|
||||
|
||||
private final boolean _value;
|
||||
|
||||
public BoolPtg(LittleEndianInput in) {
|
||||
_value = (in.readByte() == 1);
|
||||
private BoolPtg(boolean b) {
|
||||
_value = b;
|
||||
}
|
||||
|
||||
public BoolPtg(String formulaToken) {
|
||||
_value = (formulaToken.equalsIgnoreCase("TRUE"));
|
||||
public static BoolPtg valueOf(boolean b) {
|
||||
return b ? TRUE : FALSE;
|
||||
}
|
||||
public static BoolPtg read(LittleEndianInput in) {
|
||||
return valueOf(in.readByte() == 1);
|
||||
}
|
||||
|
||||
public boolean getValue() {
|
||||
|
@ -152,7 +152,7 @@ public abstract class Ptg {
|
||||
case StringPtg.sid: return new StringPtg(in); // 0x17
|
||||
case AttrPtg.sid: return new AttrPtg(in); // 0x19
|
||||
case ErrPtg.sid: return ErrPtg.read(in); // 0x1c
|
||||
case BoolPtg.sid: return new BoolPtg(in); // 0x1d
|
||||
case BoolPtg.sid: return BoolPtg.read(in); // 0x1d
|
||||
case IntPtg.sid: return new IntPtg(in); // 0x1e
|
||||
case NumberPtg.sid: return new NumberPtg(in); // 0x1f
|
||||
}
|
||||
|
@ -551,7 +551,7 @@ public final class FormulaParser {
|
||||
return function(name);
|
||||
}
|
||||
if (name.equalsIgnoreCase("TRUE") || name.equalsIgnoreCase("FALSE")) {
|
||||
return new ParseNode(new BoolPtg(name.toUpperCase()));
|
||||
return new ParseNode(BoolPtg.valueOf(name.equalsIgnoreCase("TRUE")));
|
||||
}
|
||||
if (_book == null) {
|
||||
// Only test cases omit the book (expecting it not to be needed)
|
||||
|
Loading…
Reference in New Issue
Block a user