mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-22 16:14:10 -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();
|
||||
|
||||
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
|
||||
*/
|
||||
public class TDecimalFormat extends TNumberFormat {
|
||||
private transient boolean parseBigDecimal = false;
|
||||
private transient TDecimalFormatSymbols symbols;
|
||||
private TDecimalFormatSymbols symbols;
|
||||
|
||||
public TDecimalFormat() {
|
||||
this(CLDRHelper.resolveDecimalFormat(TLocale.getDefault().getLanguage(), TLocale.getDefault().getCountry()));
|
||||
|
@ -39,6 +38,7 @@ public class TDecimalFormat extends TNumberFormat {
|
|||
public TDecimalFormat(String pattern, TDecimalFormatSymbols value) {
|
||||
symbols = (TDecimalFormatSymbols)value.clone();
|
||||
TLocale locale = symbols.getLocale();
|
||||
applyPattern(pattern);
|
||||
|
||||
CLDRDecimalData decimalData = CLDRHelper.resolveDecimalData(locale.getLanguage(), locale.getCountry());
|
||||
super.setMaximumFractionDigits(decimalData.getMaximumFractionDigits());
|
||||
|
@ -47,13 +47,12 @@ public class TDecimalFormat extends TNumberFormat {
|
|||
super.setMinimumIntegerDigits(decimalData.getMinimumIntegerDigits());
|
||||
}
|
||||
|
||||
public DecimalFormatSymbols getDecimalFormatSymbols() {
|
||||
return (DecimalFormatSymbols) symbols.clone();
|
||||
public void applyPattern(String pattern) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public StringBuffer format(double value, StringBuffer buffer, TFieldPosition field) {
|
||||
return null;
|
||||
public DecimalFormatSymbols getDecimalFormatSymbols() {
|
||||
return (DecimalFormatSymbols)symbols.clone();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -65,4 +64,9 @@ public class TDecimalFormat extends TNumberFormat {
|
|||
public Number parse(String string, TParsePosition position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StringBuffer format(double value, StringBuffer buffer, TFieldPosition field) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
|
@ -22,19 +24,167 @@ import org.teavm.classlib.java.util.TLocale;
|
|||
* @author Alexey Andreev
|
||||
*/
|
||||
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) {
|
||||
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() {
|
||||
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() {
|
||||
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