com.fasterxml.jackson.jr.private_.io.doubleparser.DoubleBitsFromCharSequence Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jackson-jr-all Show documentation
Show all versions of jackson-jr-all Show documentation
"Uber" jar that contains all Jackson jr components as well as underlying Jackson core
Streaming, in a single jar.
/**
* References:
*
* - This class has been derived from "FastDoubleParser".
* - Copyright (c) Werner Randelshofer. Apache 2.0 License.
* github.com.
*
*/
package com.fasterxml.jackson.core.io.doubleparser;
/**
* Parses a {@code double} from a {@link CharSequence}.
*/
final class DoubleBitsFromCharSequence extends AbstractFloatingPointBitsFromCharSequence {
/**
* Creates a new instance.
*/
public DoubleBitsFromCharSequence() {
}
@Override
long nan() {
return Double.doubleToRawLongBits(Double.NaN);
}
@Override
long negativeInfinity() {
return Double.doubleToRawLongBits(Double.NEGATIVE_INFINITY);
}
@Override
long positiveInfinity() {
return Double.doubleToRawLongBits(Double.POSITIVE_INFINITY);
}
@Override
long valueOfFloatLiteral(CharSequence str, int startIndex, int endIndex, boolean isNegative,
long significand, int exponent, boolean isSignificandTruncated,
int exponentOfTruncatedSignificand) {
double d = FastDoubleMath.tryDecFloatToDoubleTruncated(isNegative, significand, exponent, isSignificandTruncated,
exponentOfTruncatedSignificand);
return Double.doubleToRawLongBits(Double.isNaN(d) ? Double.parseDouble(str.subSequence(startIndex, endIndex).toString()) : d);
}
@Override
long valueOfHexLiteral(
CharSequence str, int startIndex, int endIndex, boolean isNegative, long significand, int exponent,
boolean isSignificandTruncated, int exponentOfTruncatedSignificand) {
double d = FastDoubleMath.tryHexFloatToDoubleTruncated(isNegative, significand, exponent, isSignificandTruncated,
exponentOfTruncatedSignificand);
return Double.doubleToRawLongBits(Double.isNaN(d) ? Double.parseDouble(str.subSequence(startIndex, endIndex).toString()) : d);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy