From c397f276a05778a0d2c1ca01adfe30ed2584612a Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sun, 8 Feb 2015 15:22:01 +0000 Subject: [PATCH] Prepare FormulaError for both long and short codes git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1658187 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/ss/usermodel/FormulaError.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/java/org/apache/poi/ss/usermodel/FormulaError.java b/src/java/org/apache/poi/ss/usermodel/FormulaError.java index f313ab6d0a..739362436a 100644 --- a/src/java/org/apache/poi/ss/usermodel/FormulaError.java +++ b/src/java/org/apache/poi/ss/usermodel/FormulaError.java @@ -95,11 +95,13 @@ public enum FormulaError { */ NA(0x2A, "#N/A"); - private byte type; - private String repr; + private final byte type; + private final int longType; + private final String repr; private FormulaError(int type, String repr) { - this.type = (byte) type; + this.type = (byte)type; + this.longType = type; this.repr = repr; } @@ -109,6 +111,12 @@ public enum FormulaError { public byte getCode() { return type; } + /** + * @return long (internal) numeric code of the error + */ + public int getLongCode() { + return longType; + } /** * @return string representation of the error @@ -118,10 +126,12 @@ public enum FormulaError { } private static Map smap = new HashMap(); - private static Map imap = new HashMap(); + private static Map bmap = new HashMap(); + private static Map imap = new HashMap(); static{ for (FormulaError error : values()) { - imap.put(error.getCode(), error); + bmap.put(error.getCode(), error); + imap.put(error.getLongCode(), error); smap.put(error.getString(), error); } } @@ -129,11 +139,17 @@ public enum FormulaError { public static final boolean isValidCode(int errorCode) { for (FormulaError error : values()) { if (error.getCode() == errorCode) return true; + if (error.getLongCode() == errorCode) return true; } return false; } public static FormulaError forInt(byte type){ + FormulaError err = bmap.get(type); + if(err == null) throw new IllegalArgumentException("Unknown error type: " + type); + return err; + } + public static FormulaError forInt(int type){ FormulaError err = imap.get(type); if(err == null) throw new IllegalArgumentException("Unknown error type: " + type); return err; -- 2.39.5