Skip to content

Commit 62f2b9d

Browse files
authored
go back to using switch statements in schubfach code (#853)
1 parent f6937e8 commit 62f2b9d

File tree

2 files changed

+56
-78
lines changed

2 files changed

+56
-78
lines changed

src/main/java/com/fasterxml/jackson/core/io/schubfach/DoubleToDecimal.java

+28-39
Original file line numberDiff line numberDiff line change
@@ -146,50 +146,39 @@ public static Appendable appendTo(double v, Appendable app)
146146
}
147147

148148
private String toDecimalString(double v) {
149-
final int intValue = toDecimal(v);
150-
if (intValue == NON_SPECIAL) {
151-
return charsToString();
152-
} else if (intValue == PLUS_ZERO) {
153-
return "0.0";
154-
} else if (intValue == MINUS_ZERO) {
155-
return "-0.0";
156-
} else if (intValue == PLUS_INF) {
157-
return "Infinity";
158-
} else if (intValue == MINUS_INF) {
159-
return "-Infinity";
160-
} else {
161-
return "NaN";
149+
switch (toDecimal(v)) {
150+
case NON_SPECIAL: return charsToString();
151+
case PLUS_ZERO: return "0.0";
152+
case MINUS_ZERO: return "-0.0";
153+
case PLUS_INF: return "Infinity";
154+
case MINUS_INF: return "-Infinity";
155+
default: return "NaN";
162156
}
163157
}
164158

165159
private Appendable appendDecimalTo(double v, Appendable app)
166160
throws IOException {
167-
final int intValue = toDecimal(v);
168-
if (intValue == NON_SPECIAL) {
169-
char[] chars = new char[index + 1];
170-
for (int i = 0; i < chars.length; ++i) {
171-
chars[i] = (char) bytes[i];
172-
}
173-
if (app instanceof StringBuilder) {
174-
return ((StringBuilder) app).append(chars);
175-
}
176-
if (app instanceof StringBuffer) {
177-
return ((StringBuffer) app).append(chars);
178-
}
179-
for (char c : chars) {
180-
app.append(c);
181-
}
182-
return app;
183-
} else if (intValue == PLUS_ZERO) {
184-
return app.append("0.0");
185-
} else if (intValue == MINUS_ZERO) {
186-
return app.append("-0.0");
187-
} else if (intValue == PLUS_INF) {
188-
return app.append("Infinity");
189-
} else if (intValue == MINUS_INF) {
190-
return app.append("-Infinity");
191-
} else {
192-
return app.append("NaN");
161+
switch (toDecimal(v)) {
162+
case NON_SPECIAL:
163+
char[] chars = new char[index + 1];
164+
for (int i = 0; i < chars.length; ++i) {
165+
chars[i] = (char) bytes[i];
166+
}
167+
if (app instanceof StringBuilder) {
168+
return ((StringBuilder) app).append(chars);
169+
}
170+
if (app instanceof StringBuffer) {
171+
return ((StringBuffer) app).append(chars);
172+
}
173+
for (char c : chars) {
174+
app.append(c);
175+
}
176+
return app;
177+
case PLUS_ZERO: return app.append("0.0");
178+
case MINUS_ZERO: return app.append("-0.0");
179+
case PLUS_INF: return app.append("Infinity");
180+
case MINUS_INF: return app.append("-Infinity");
181+
default: return app.append("NaN");
193182
}
194183
}
195184

src/main/java/com/fasterxml/jackson/core/io/schubfach/FloatToDecimal.java

+28-39
Original file line numberDiff line numberDiff line change
@@ -146,50 +146,39 @@ public static Appendable appendTo(float v, Appendable app)
146146
}
147147

148148
private String toDecimalString(float v) {
149-
final int intValue = toDecimal(v);
150-
if (intValue == NON_SPECIAL) {
151-
return charsToString();
152-
} else if (intValue == PLUS_ZERO) {
153-
return "0.0";
154-
} else if (intValue == MINUS_ZERO) {
155-
return "-0.0";
156-
} else if (intValue == PLUS_INF) {
157-
return "Infinity";
158-
} else if (intValue == MINUS_INF) {
159-
return "-Infinity";
160-
} else {
161-
return "NaN";
149+
switch (toDecimal(v)) {
150+
case NON_SPECIAL: return charsToString();
151+
case PLUS_ZERO: return "0.0";
152+
case MINUS_ZERO: return "-0.0";
153+
case PLUS_INF: return "Infinity";
154+
case MINUS_INF: return "-Infinity";
155+
default: return "NaN";
162156
}
163157
}
164158

165159
private Appendable appendDecimalTo(float v, Appendable app)
166160
throws IOException {
167-
final int intValue = toDecimal(v);
168-
if (intValue == NON_SPECIAL) {
169-
char[] chars = new char[index + 1];
170-
for (int i = 0; i < chars.length; ++i) {
171-
chars[i] = (char) bytes[i];
172-
}
173-
if (app instanceof StringBuilder) {
174-
return ((StringBuilder) app).append(chars);
175-
}
176-
if (app instanceof StringBuffer) {
177-
return ((StringBuffer) app).append(chars);
178-
}
179-
for (char c : chars) {
180-
app.append(c);
181-
}
182-
return app;
183-
} else if (intValue == PLUS_ZERO) {
184-
return app.append("0.0");
185-
} else if (intValue == MINUS_ZERO) {
186-
return app.append("-0.0");
187-
} else if (intValue == PLUS_INF) {
188-
return app.append("Infinity");
189-
} else if (intValue == MINUS_INF) {
190-
return app.append("-Infinity");
191-
} else {
192-
return app.append("NaN");
161+
switch (toDecimal(v)) {
162+
case NON_SPECIAL:
163+
char[] chars = new char[index + 1];
164+
for (int i = 0; i < chars.length; ++i) {
165+
chars[i] = (char) bytes[i];
166+
}
167+
if (app instanceof StringBuilder) {
168+
return ((StringBuilder) app).append(chars);
169+
}
170+
if (app instanceof StringBuffer) {
171+
return ((StringBuffer) app).append(chars);
172+
}
173+
for (char c : chars) {
174+
app.append(c);
175+
}
176+
return app;
177+
case PLUS_ZERO: return app.append("0.0");
178+
case MINUS_ZERO: return app.append("-0.0");
179+
case PLUS_INF: return app.append("Infinity");
180+
case MINUS_INF: return app.append("-Infinity");
181+
default: return app.append("NaN");
193182
}
194183
}
195184

0 commit comments

Comments
 (0)