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.
|
* Boolean (boolean) Stores a (java) boolean value in a formula.
|
||||||
*
|
*
|
||||||
* @author Paul Krause (pkrause at soundbite dot com)
|
* @author Paul Krause (pkrause at soundbite dot com)
|
||||||
* @author Andrew C. Oliver (acoliver at apache dot org)
|
* @author Andrew C. Oliver (acoliver at apache dot org)
|
||||||
* @author Jason Height (jheight at chariot dot net dot au)
|
* @author Jason Height (jheight at chariot dot net dot au)
|
||||||
*/
|
*/
|
||||||
public final class BoolPtg extends ScalarConstantPtg {
|
public final class BoolPtg extends ScalarConstantPtg {
|
||||||
public final static int SIZE = 2;
|
public static final int SIZE = 2;
|
||||||
public final static byte sid = 0x1D;
|
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;
|
private final boolean _value;
|
||||||
|
|
||||||
public BoolPtg(LittleEndianInput in) {
|
private BoolPtg(boolean b) {
|
||||||
_value = (in.readByte() == 1);
|
_value = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BoolPtg(String formulaToken) {
|
public static BoolPtg valueOf(boolean b) {
|
||||||
_value = (formulaToken.equalsIgnoreCase("TRUE"));
|
return b ? TRUE : FALSE;
|
||||||
|
}
|
||||||
|
public static BoolPtg read(LittleEndianInput in) {
|
||||||
|
return valueOf(in.readByte() == 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getValue() {
|
public boolean getValue() {
|
||||||
|
@ -152,7 +152,7 @@ public abstract class Ptg {
|
|||||||
case StringPtg.sid: return new StringPtg(in); // 0x17
|
case StringPtg.sid: return new StringPtg(in); // 0x17
|
||||||
case AttrPtg.sid: return new AttrPtg(in); // 0x19
|
case AttrPtg.sid: return new AttrPtg(in); // 0x19
|
||||||
case ErrPtg.sid: return ErrPtg.read(in); // 0x1c
|
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 IntPtg.sid: return new IntPtg(in); // 0x1e
|
||||||
case NumberPtg.sid: return new NumberPtg(in); // 0x1f
|
case NumberPtg.sid: return new NumberPtg(in); // 0x1f
|
||||||
}
|
}
|
||||||
|
@ -551,7 +551,7 @@ public final class FormulaParser {
|
|||||||
return function(name);
|
return function(name);
|
||||||
}
|
}
|
||||||
if (name.equalsIgnoreCase("TRUE") || name.equalsIgnoreCase("FALSE")) {
|
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) {
|
if (_book == null) {
|
||||||
// Only test cases omit the book (expecting it not to be needed)
|
// Only test cases omit the book (expecting it not to be needed)
|
||||||
|
Loading…
Reference in New Issue
Block a user