From 35f2ca4335069be6a5642c8da5e5563533a25737 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 1 Dec 2022 11:45:23 +0100 Subject: [PATCH] go back to using switch statements in schubfach code --- .../core/io/schubfach/DoubleToDecimal.java | 67 ++++++++----------- .../core/io/schubfach/FloatToDecimal.java | 67 ++++++++----------- 2 files changed, 56 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/fasterxml/jackson/core/io/schubfach/DoubleToDecimal.java b/src/main/java/com/fasterxml/jackson/core/io/schubfach/DoubleToDecimal.java index 14176c025f..6d3f58d503 100644 --- a/src/main/java/com/fasterxml/jackson/core/io/schubfach/DoubleToDecimal.java +++ b/src/main/java/com/fasterxml/jackson/core/io/schubfach/DoubleToDecimal.java @@ -146,50 +146,39 @@ public static Appendable appendTo(double v, Appendable app) } private String toDecimalString(double v) { - final int intValue = toDecimal(v); - if (intValue == NON_SPECIAL) { - return charsToString(); - } else if (intValue == PLUS_ZERO) { - return "0.0"; - } else if (intValue == MINUS_ZERO) { - return "-0.0"; - } else if (intValue == PLUS_INF) { - return "Infinity"; - } else if (intValue == MINUS_INF) { - return "-Infinity"; - } else { - return "NaN"; + switch (toDecimal(v)) { + case NON_SPECIAL: return charsToString(); + case PLUS_ZERO: return "0.0"; + case MINUS_ZERO: return "-0.0"; + case PLUS_INF: return "Infinity"; + case MINUS_INF: return "-Infinity"; + default: return "NaN"; } } private Appendable appendDecimalTo(double v, Appendable app) throws IOException { - final int intValue = toDecimal(v); - if (intValue == NON_SPECIAL) { - char[] chars = new char[index + 1]; - for (int i = 0; i < chars.length; ++i) { - chars[i] = (char) bytes[i]; - } - if (app instanceof StringBuilder) { - return ((StringBuilder) app).append(chars); - } - if (app instanceof StringBuffer) { - return ((StringBuffer) app).append(chars); - } - for (char c : chars) { - app.append(c); - } - return app; - } else if (intValue == PLUS_ZERO) { - return app.append("0.0"); - } else if (intValue == MINUS_ZERO) { - return app.append("-0.0"); - } else if (intValue == PLUS_INF) { - return app.append("Infinity"); - } else if (intValue == MINUS_INF) { - return app.append("-Infinity"); - } else { - return app.append("NaN"); + switch (toDecimal(v)) { + case NON_SPECIAL: + char[] chars = new char[index + 1]; + for (int i = 0; i < chars.length; ++i) { + chars[i] = (char) bytes[i]; + } + if (app instanceof StringBuilder) { + return ((StringBuilder) app).append(chars); + } + if (app instanceof StringBuffer) { + return ((StringBuffer) app).append(chars); + } + for (char c : chars) { + app.append(c); + } + return app; + case PLUS_ZERO: return app.append("0.0"); + case MINUS_ZERO: return app.append("-0.0"); + case PLUS_INF: return app.append("Infinity"); + case MINUS_INF: return app.append("-Infinity"); + default: return app.append("NaN"); } } diff --git a/src/main/java/com/fasterxml/jackson/core/io/schubfach/FloatToDecimal.java b/src/main/java/com/fasterxml/jackson/core/io/schubfach/FloatToDecimal.java index a10e6c6915..1cd886d23d 100644 --- a/src/main/java/com/fasterxml/jackson/core/io/schubfach/FloatToDecimal.java +++ b/src/main/java/com/fasterxml/jackson/core/io/schubfach/FloatToDecimal.java @@ -146,50 +146,39 @@ public static Appendable appendTo(float v, Appendable app) } private String toDecimalString(float v) { - final int intValue = toDecimal(v); - if (intValue == NON_SPECIAL) { - return charsToString(); - } else if (intValue == PLUS_ZERO) { - return "0.0"; - } else if (intValue == MINUS_ZERO) { - return "-0.0"; - } else if (intValue == PLUS_INF) { - return "Infinity"; - } else if (intValue == MINUS_INF) { - return "-Infinity"; - } else { - return "NaN"; + switch (toDecimal(v)) { + case NON_SPECIAL: return charsToString(); + case PLUS_ZERO: return "0.0"; + case MINUS_ZERO: return "-0.0"; + case PLUS_INF: return "Infinity"; + case MINUS_INF: return "-Infinity"; + default: return "NaN"; } } private Appendable appendDecimalTo(float v, Appendable app) throws IOException { - final int intValue = toDecimal(v); - if (intValue == NON_SPECIAL) { - char[] chars = new char[index + 1]; - for (int i = 0; i < chars.length; ++i) { - chars[i] = (char) bytes[i]; - } - if (app instanceof StringBuilder) { - return ((StringBuilder) app).append(chars); - } - if (app instanceof StringBuffer) { - return ((StringBuffer) app).append(chars); - } - for (char c : chars) { - app.append(c); - } - return app; - } else if (intValue == PLUS_ZERO) { - return app.append("0.0"); - } else if (intValue == MINUS_ZERO) { - return app.append("-0.0"); - } else if (intValue == PLUS_INF) { - return app.append("Infinity"); - } else if (intValue == MINUS_INF) { - return app.append("-Infinity"); - } else { - return app.append("NaN"); + switch (toDecimal(v)) { + case NON_SPECIAL: + char[] chars = new char[index + 1]; + for (int i = 0; i < chars.length; ++i) { + chars[i] = (char) bytes[i]; + } + if (app instanceof StringBuilder) { + return ((StringBuilder) app).append(chars); + } + if (app instanceof StringBuffer) { + return ((StringBuffer) app).append(chars); + } + for (char c : chars) { + app.append(c); + } + return app; + case PLUS_ZERO: return app.append("0.0"); + case MINUS_ZERO: return app.append("-0.0"); + case PLUS_INF: return app.append("Infinity"); + case MINUS_INF: return app.append("-Infinity"); + default: return app.append("NaN"); } }