abstract class org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat extends java.lang.Object implements java.util.function.DoubleFunction, org.apache.commons.text.numbers.ParsedDecimal$FormatOptions
{
private final int maxPrecision;
private final int minDecimalExponent;
private final java.lang.String positiveInfinity;
private final java.lang.String negativeInfinity;
private final java.lang.String nan;
private final boolean fractionPlaceholder;
private final boolean signedZero;
private final char[] digits;
private final char decimalSeparator;
private final char groupingSeparator;
private final boolean groupThousands;
private final char minusSign;
private final char[] exponentSeparatorChars;
private final boolean alwaysIncludeExponent;
void <init>(org.apache.commons.text.numbers.DoubleFormat$Builder)
{
org.apache.commons.text.numbers.DoubleFormat$Builder v;
int v, v;
java.lang.String v, v, v, v, v, v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
boolean v, v, v, v;
char v, v, v, v;
char[] v, v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v := @parameter: org.apache.commons.text.numbers.DoubleFormat$Builder;
specialinvoke v.<java.lang.Object: void <init>()>();
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: int maxPrecision>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: int maxPrecision> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: int minDecimalExponent>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: int minDecimalExponent> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: java.lang.String infinity>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String positiveInfinity> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: char minusSign>;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: java.lang.String infinity>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String negativeInfinity> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: java.lang.String nan>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String nan> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: boolean fractionPlaceholder>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean fractionPlaceholder> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: boolean signedZero>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean signedZero> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: java.lang.String digits>;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char[] digits> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: char decimalSeparator>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char decimalSeparator> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: char groupingSeparator>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char groupingSeparator> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: boolean groupThousands>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean groupThousands> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: char minusSign>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char minusSign> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: java.lang.String exponentSeparator>;
v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char[] exponentSeparatorChars> = v;
v = v.<org.apache.commons.text.numbers.DoubleFormat$Builder: boolean alwaysIncludeExponent>;
v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean alwaysIncludeExponent> = v;
return;
}
public java.lang.String apply(double)
{
byte v;
java.lang.String v, v, v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
boolean v, v;
double v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v := @parameter: double;
v = staticinvoke <java.lang.Double: boolean isFinite(double)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String applyFinite(double)>(v);
return v;
label:
v = staticinvoke <java.lang.Double: boolean isInfinite(double)>(v);
if v == 0 goto label;
v = v cmpl 0.0;
if v <= 0 goto label;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String positiveInfinity>;
goto label;
label:
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String negativeInfinity>;
label:
return v;
label:
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String nan>;
return v;
}
private java.lang.String applyFinite(double)
{
org.apache.commons.text.numbers.ParsedDecimal v;
int v, v, v, v, v, v, v, v;
java.lang.String v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
double v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v := @parameter: double;
v = staticinvoke <org.apache.commons.text.numbers.ParsedDecimal: org.apache.commons.text.numbers.ParsedDecimal 'from'(double)>(v);
v = virtualinvoke v.<org.apache.commons.text.numbers.ParsedDecimal: int getExponent()>();
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: int minDecimalExponent>;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: int maxPrecision>;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.commons.text.numbers.ParsedDecimal: int getScientificExponent()>();
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: int maxPrecision>;
v = v - v;
v = v + 1;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
label:
virtualinvoke v.<org.apache.commons.text.numbers.ParsedDecimal: void round(int)>(v);
v = virtualinvoke v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: java.lang.String applyFiniteInternal(org.apache.commons.text.numbers.ParsedDecimal)>(v);
return v;
}
protected abstract java.lang.String applyFiniteInternal(org.apache.commons.text.numbers.ParsedDecimal);
public char getDecimalSeparator()
{
char v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char decimalSeparator>;
return v;
}
public char[] getDigits()
{
char[] v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char[] digits>;
return v;
}
public char[] getExponentSeparatorChars()
{
char[] v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char[] exponentSeparatorChars>;
return v;
}
public char getGroupingSeparator()
{
char v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char groupingSeparator>;
return v;
}
public char getMinusSign()
{
char v;
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: char minusSign>;
return v;
}
public boolean isAlwaysIncludeExponent()
{
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
boolean v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean alwaysIncludeExponent>;
return v;
}
public boolean isGroupThousands()
{
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
boolean v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean groupThousands>;
return v;
}
public boolean isIncludeFractionPlaceholder()
{
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
boolean v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean fractionPlaceholder>;
return v;
}
public boolean isSignedZero()
{
org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat v;
boolean v;
v := @this: org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat;
v = v.<org.apache.commons.text.numbers.DoubleFormat$AbstractDoubleFormat: boolean signedZero>;
return v;
}
}