mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-23 00:24:11 -08:00
Adds DecimalFormatSymbols support
This commit is contained in:
parent
fd73145a9b
commit
f71f847411
|
@ -37,4 +37,40 @@ public interface CLDRDecimalData extends Resource {
|
||||||
int getMinimumIntegerDigits();
|
int getMinimumIntegerDigits();
|
||||||
|
|
||||||
void setMinimumIntegerDigits(int value);
|
void setMinimumIntegerDigits(int value);
|
||||||
|
|
||||||
|
int getGroupingSeparator();
|
||||||
|
|
||||||
|
void setGroupingSeparator(int value);
|
||||||
|
|
||||||
|
int getDecimalSeparator();
|
||||||
|
|
||||||
|
void setDecimalSeparator(int value);
|
||||||
|
|
||||||
|
int getPerMill();
|
||||||
|
|
||||||
|
void setPerMill(int value);
|
||||||
|
|
||||||
|
int getPercent();
|
||||||
|
|
||||||
|
void setPercent(int value);
|
||||||
|
|
||||||
|
String getNaN();
|
||||||
|
|
||||||
|
void setNaN(String nan);
|
||||||
|
|
||||||
|
String getInfinity();
|
||||||
|
|
||||||
|
void setInfinity(String infinity);
|
||||||
|
|
||||||
|
int getMinusSign();
|
||||||
|
|
||||||
|
void setMinusSign(int value);
|
||||||
|
|
||||||
|
int getMonetaryDecimalSeparator();
|
||||||
|
|
||||||
|
void setMonetaryDecimalSeparator(int value);
|
||||||
|
|
||||||
|
String getExponentSeparator();
|
||||||
|
|
||||||
|
void setExponentSeparator(String value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,7 @@ import org.teavm.classlib.java.util.TLocale;
|
||||||
* @author Alexey Andreev
|
* @author Alexey Andreev
|
||||||
*/
|
*/
|
||||||
public class TDecimalFormat extends TNumberFormat {
|
public class TDecimalFormat extends TNumberFormat {
|
||||||
private transient boolean parseBigDecimal = false;
|
private TDecimalFormatSymbols symbols;
|
||||||
private transient TDecimalFormatSymbols symbols;
|
|
||||||
|
|
||||||
public TDecimalFormat() {
|
public TDecimalFormat() {
|
||||||
this(CLDRHelper.resolveDecimalFormat(TLocale.getDefault().getLanguage(), TLocale.getDefault().getCountry()));
|
this(CLDRHelper.resolveDecimalFormat(TLocale.getDefault().getLanguage(), TLocale.getDefault().getCountry()));
|
||||||
|
@ -37,8 +36,9 @@ public class TDecimalFormat extends TNumberFormat {
|
||||||
}
|
}
|
||||||
|
|
||||||
public TDecimalFormat(String pattern, TDecimalFormatSymbols value) {
|
public TDecimalFormat(String pattern, TDecimalFormatSymbols value) {
|
||||||
symbols = (TDecimalFormatSymbols) value.clone();
|
symbols = (TDecimalFormatSymbols)value.clone();
|
||||||
TLocale locale = symbols.getLocale();
|
TLocale locale = symbols.getLocale();
|
||||||
|
applyPattern(pattern);
|
||||||
|
|
||||||
CLDRDecimalData decimalData = CLDRHelper.resolveDecimalData(locale.getLanguage(), locale.getCountry());
|
CLDRDecimalData decimalData = CLDRHelper.resolveDecimalData(locale.getLanguage(), locale.getCountry());
|
||||||
super.setMaximumFractionDigits(decimalData.getMaximumFractionDigits());
|
super.setMaximumFractionDigits(decimalData.getMaximumFractionDigits());
|
||||||
|
@ -47,13 +47,12 @@ public class TDecimalFormat extends TNumberFormat {
|
||||||
super.setMinimumIntegerDigits(decimalData.getMinimumIntegerDigits());
|
super.setMinimumIntegerDigits(decimalData.getMinimumIntegerDigits());
|
||||||
}
|
}
|
||||||
|
|
||||||
public DecimalFormatSymbols getDecimalFormatSymbols() {
|
public void applyPattern(String pattern) {
|
||||||
return (DecimalFormatSymbols) symbols.clone();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public DecimalFormatSymbols getDecimalFormatSymbols() {
|
||||||
public StringBuffer format(double value, StringBuffer buffer, TFieldPosition field) {
|
return (DecimalFormatSymbols)symbols.clone();
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -65,4 +64,9 @@ public class TDecimalFormat extends TNumberFormat {
|
||||||
public Number parse(String string, TParsePosition position) {
|
public Number parse(String string, TParsePosition position) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StringBuffer format(double value, StringBuffer buffer, TFieldPosition field) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package org.teavm.classlib.java.text;
|
package org.teavm.classlib.java.text;
|
||||||
|
|
||||||
|
import org.teavm.classlib.impl.unicode.CLDRDecimalData;
|
||||||
|
import org.teavm.classlib.impl.unicode.CLDRHelper;
|
||||||
import org.teavm.classlib.java.util.TLocale;
|
import org.teavm.classlib.java.util.TLocale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,19 +24,167 @@ import org.teavm.classlib.java.util.TLocale;
|
||||||
* @author Alexey Andreev
|
* @author Alexey Andreev
|
||||||
*/
|
*/
|
||||||
public class TDecimalFormatSymbols {
|
public class TDecimalFormatSymbols {
|
||||||
public TDecimalFormatSymbols() {
|
private TLocale locale;
|
||||||
|
private char zeroDigit;
|
||||||
|
private char groupingSeparator;
|
||||||
|
private char decimalSeparator;
|
||||||
|
private char perMill;
|
||||||
|
private char percent;
|
||||||
|
private char digit;
|
||||||
|
private char patternSeparator;
|
||||||
|
private String NaN;
|
||||||
|
private String infinity;
|
||||||
|
private char minusSign;
|
||||||
|
private char monetaryDecimalSeparator;
|
||||||
|
private String exponentSeparator;
|
||||||
|
|
||||||
|
public TDecimalFormatSymbols() {
|
||||||
|
this(TLocale.getDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
public TDecimalFormatSymbols(TLocale locale) {
|
public TDecimalFormatSymbols(TLocale locale) {
|
||||||
|
this.locale = locale;
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initData() {
|
||||||
|
CLDRDecimalData data = CLDRHelper.resolveDecimalData(locale.getLanguage(), locale.getCountry());
|
||||||
|
zeroDigit = '0';
|
||||||
|
groupingSeparator = (char)data.getGroupingSeparator();
|
||||||
|
decimalSeparator = (char)data.getDecimalSeparator();
|
||||||
|
perMill = (char)data.getPerMill();
|
||||||
|
percent = (char)data.getPercent();
|
||||||
|
digit = '#';
|
||||||
|
patternSeparator = ';';
|
||||||
|
NaN = data.getNaN();
|
||||||
|
infinity = data.getInfinity();
|
||||||
|
minusSign = (char)data.getMinusSign();
|
||||||
|
monetaryDecimalSeparator = (char)data.getMonetaryDecimalSeparator();
|
||||||
|
exponentSeparator = data.getExponentSeparator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static TLocale[] getAvailableLocales() {
|
||||||
|
return TLocale.getAvailableLocales();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final TDecimalFormatSymbols getInstance() {
|
||||||
|
return new TDecimalFormatSymbols();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final TDecimalFormatSymbols getInstance(TLocale locale) {
|
||||||
|
return new TDecimalFormatSymbols(locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getZeroDigit() {
|
||||||
|
return zeroDigit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setZeroDigit(char zeroDigit) {
|
||||||
|
this.zeroDigit = zeroDigit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getGroupingSeparator() {
|
||||||
|
return groupingSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroupingSeparator(char groupingSeparator) {
|
||||||
|
this.groupingSeparator = groupingSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getPerMill() {
|
||||||
|
return perMill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPerMill(char perMill) {
|
||||||
|
this.perMill = perMill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getPercent() {
|
||||||
|
return percent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPercent(char percent) {
|
||||||
|
this.percent = percent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TLocale getLocale() {
|
public TLocale getLocale() {
|
||||||
return null;
|
return locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public char getDecimalSeparator() {
|
||||||
|
return decimalSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDecimalSeparator(char decimalSeparator) {
|
||||||
|
this.decimalSeparator = decimalSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getDigit() {
|
||||||
|
return digit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDigit(char digit) {
|
||||||
|
this.digit = digit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getPatternSeparator() {
|
||||||
|
return patternSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPatternSeparator(char patternSeparator) {
|
||||||
|
this.patternSeparator = patternSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNaN() {
|
||||||
|
return NaN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNaN(String naN) {
|
||||||
|
NaN = naN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInfinity() {
|
||||||
|
return infinity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfinity(String infinity) {
|
||||||
|
this.infinity = infinity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getMinusSign() {
|
||||||
|
return minusSign;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinusSign(char minusSign) {
|
||||||
|
this.minusSign = minusSign;
|
||||||
|
}
|
||||||
|
|
||||||
|
public char getMonetaryDecimalSeparator() {
|
||||||
|
return monetaryDecimalSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMonetaryDecimalSeparator(char monetaryDecimalSeparator) {
|
||||||
|
this.monetaryDecimalSeparator = monetaryDecimalSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getExponentSeparator() {
|
||||||
|
return exponentSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExponentSeparator(String exponentSeparator) {
|
||||||
|
this.exponentSeparator = exponentSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLocale(TLocale locale) {
|
||||||
|
this.locale = locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Object clone() {
|
public Object clone() {
|
||||||
return null;
|
try {
|
||||||
|
return super.clone();
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
throw new AssertionError("This exception should not been thrown", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user