home *** CD-ROM | disk | FTP | other *** search
- package java.text;
-
- import java.text.resources.LocaleData;
- import java.util.Hashtable;
- import java.util.Locale;
- import java.util.ResourceBundle;
-
- public abstract class NumberFormat extends Format implements Cloneable {
- public static final int INTEGER_FIELD = 0;
- public static final int FRACTION_FIELD = 1;
- private static final Hashtable cachedLocaleData = new Hashtable(3);
- private static final int NUMBERSTYLE = 0;
- private static final int CURRENCYSTYLE = 1;
- private static final int PERCENTSTYLE = 2;
- private static final int SCIENTIFICSTYLE = 3;
- private boolean groupingUsed = true;
- private byte maxIntegerDigits = 40;
- private byte minIntegerDigits = 1;
- private byte maxFractionDigits = 3;
- private byte minFractionDigits;
- private boolean parseIntegerOnly = false;
- static final long serialVersionUID = -2308460125733713944L;
-
- public final StringBuffer format(Object var1, StringBuffer var2, FieldPosition var3) {
- if (!(var1 instanceof Double) && !(var1 instanceof Float)) {
- if (var1 instanceof Number) {
- return this.format(((Number)var1).longValue(), var2, var3);
- } else {
- throw new IllegalArgumentException("Cannot format given Object as a Number");
- }
- } else {
- return this.format(((Number)var1).doubleValue(), var2, var3);
- }
- }
-
- public final Object parseObject(String var1, ParsePosition var2) {
- return this.parse(var1, var2);
- }
-
- public final String format(double var1) {
- return this.format(var1, new StringBuffer(), new FieldPosition(0)).toString();
- }
-
- public final String format(long var1) {
- return this.format(var1, new StringBuffer(), new FieldPosition(0)).toString();
- }
-
- public abstract StringBuffer format(double var1, StringBuffer var3, FieldPosition var4);
-
- public abstract StringBuffer format(long var1, StringBuffer var3, FieldPosition var4);
-
- public abstract Number parse(String var1, ParsePosition var2);
-
- public Number parse(String var1) throws ParseException {
- ParsePosition var2 = new ParsePosition(0);
- Number var3 = this.parse(var1, var2);
- if (var2.index == 0) {
- throw new ParseException("Unparseable number: \"" + var1 + "\"", 0);
- } else {
- return var3;
- }
- }
-
- public boolean isParseIntegerOnly() {
- return this.parseIntegerOnly;
- }
-
- public void setParseIntegerOnly(boolean var1) {
- this.parseIntegerOnly = var1;
- }
-
- public static final NumberFormat getInstance() {
- return getInstance(Locale.getDefault(), 0);
- }
-
- public static NumberFormat getInstance(Locale var0) {
- return getInstance(var0, 0);
- }
-
- public static final NumberFormat getNumberInstance() {
- return getInstance(Locale.getDefault(), 0);
- }
-
- public static NumberFormat getNumberInstance(Locale var0) {
- return getInstance(var0, 0);
- }
-
- public static final NumberFormat getCurrencyInstance() {
- return getInstance(Locale.getDefault(), 1);
- }
-
- public static NumberFormat getCurrencyInstance(Locale var0) {
- return getInstance(var0, 1);
- }
-
- public static final NumberFormat getPercentInstance() {
- return getInstance(Locale.getDefault(), 2);
- }
-
- public static NumberFormat getPercentInstance(Locale var0) {
- return getInstance(var0, 2);
- }
-
- static final NumberFormat getScientificInstance() {
- return getInstance(Locale.getDefault(), 3);
- }
-
- static NumberFormat getScientificInstance(Locale var0) {
- return getInstance(var0, 3);
- }
-
- public static Locale[] getAvailableLocales() {
- return LocaleData.getAvailableLocales("NumberPatterns");
- }
-
- public int hashCode() {
- return this.maxIntegerDigits * 37 + this.maxFractionDigits;
- }
-
- public boolean equals(Object var1) {
- if (var1 == null) {
- return false;
- } else if (this == var1) {
- return true;
- } else if (this.getClass() != var1.getClass()) {
- return false;
- } else {
- NumberFormat var2 = (NumberFormat)var1;
- return this.maxIntegerDigits == var2.maxIntegerDigits && this.minIntegerDigits == var2.minIntegerDigits && this.maxFractionDigits == var2.maxFractionDigits && this.minFractionDigits == var2.minFractionDigits && this.groupingUsed == var2.groupingUsed && this.parseIntegerOnly == var2.parseIntegerOnly;
- }
- }
-
- public Object clone() {
- NumberFormat var1 = (NumberFormat)super.clone();
- return var1;
- }
-
- public boolean isGroupingUsed() {
- return this.groupingUsed;
- }
-
- public void setGroupingUsed(boolean var1) {
- this.groupingUsed = var1;
- }
-
- public int getMaximumIntegerDigits() {
- return this.maxIntegerDigits;
- }
-
- public void setMaximumIntegerDigits(int var1) {
- this.maxIntegerDigits = (byte)Math.max(0, Math.min(var1, 308));
- if (this.minIntegerDigits > this.maxIntegerDigits) {
- this.minIntegerDigits = this.maxIntegerDigits;
- }
-
- }
-
- public int getMinimumIntegerDigits() {
- return this.minIntegerDigits;
- }
-
- public void setMinimumIntegerDigits(int var1) {
- this.minIntegerDigits = (byte)Math.max(0, Math.min(var1, 127));
- if (this.minIntegerDigits > this.maxIntegerDigits) {
- this.maxIntegerDigits = this.minIntegerDigits;
- }
-
- }
-
- public int getMaximumFractionDigits() {
- return this.maxFractionDigits;
- }
-
- public void setMaximumFractionDigits(int var1) {
- this.maxFractionDigits = (byte)Math.max(0, Math.min(var1, 340));
- if (this.maxFractionDigits < this.minFractionDigits) {
- this.minFractionDigits = this.maxFractionDigits;
- }
-
- }
-
- public int getMinimumFractionDigits() {
- return this.minFractionDigits;
- }
-
- public void setMinimumFractionDigits(int var1) {
- this.minFractionDigits = (byte)Math.max(0, Math.min(var1, 127));
- if (this.maxFractionDigits < this.minFractionDigits) {
- this.maxFractionDigits = this.minFractionDigits;
- }
-
- }
-
- private static NumberFormat getInstance(Locale var0, int var1) {
- String[] var2 = (String[])cachedLocaleData.get(var0);
- if (var2 == null) {
- ResourceBundle var3 = ResourceBundle.getBundle("java.text.resources.LocaleElements", var0);
- var2 = var3.getStringArray("NumberPatterns");
- cachedLocaleData.put(var0, var2);
- }
-
- return new DecimalFormat(var2[var1], new DecimalFormatSymbols(var0));
- }
- }
-