import com.ibm.icu.util.Measure;
import com.ibm.icu.util.MeasureUnit;
import com.ibm.icu.util.ULocale;
-import com.ibm.icu.util.UResourceBundle;
import com.ibm.icu.util.ULocale.Category;
+import com.ibm.icu.util.UResourceBundle;
/**
* Mutable class for formatting GeneralMeasures, or sequences of them.
}
static class GeneralMeasureProxy implements Externalizable {
+ private static final long serialVersionUID = -6033308329886716770L;
+
private ULocale locale;
private FormatWidth length;
private NumberFormat numberFormat;
}
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- byte version = in.readByte(); // version
+ /* byte version = */ in.readByte(); // version
locale = (ULocale) in.readObject();
length = (FormatWidth) in.readObject();
numberFormat = (NumberFormat) in.readObject();
*/
protected Currency(String theISOCode) {
super("currency", theISOCode);
+
+ // isoCode is kept for readResolve() and Currency class no longer
+ // use it. So this statement actually does not have any effect.
+ isoCode = code;
}
// POW10[i] = 10^i
private Object writeReplace() throws ObjectStreamException {
return new MeasureUnitProxy(type, code);
}
+
+ // For backward compatibility only
+ /**
+ * ISO 4217 3-letter code.
+ */
+ private final String isoCode;
+
+ private Object readResolve() throws ObjectStreamException {
+ return Currency.getInstance(isoCode);
+ }
}
//eof
/*
*******************************************************************************
- * Copyright (C) 2004-2013, Google Inc, International Business Machines Corporation and *
- * others. All Rights Reserved. *
+ * Copyright (C) 2004-2013, Google Inc, International Business Machines *
+ * Corporation and others. All Rights Reserved. *
*******************************************************************************
*/
package com.ibm.icu.util;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
}
static final class MeasureUnitProxy implements Externalizable {
+ private static final long serialVersionUID = -3910681415330989598L;
+
private String type;
private String code;
import com.ibm.icu.dev.test.TestFmwk;
import com.ibm.icu.dev.test.serializable.SerializableTest;
-import com.ibm.icu.impl.CurrencyData.CurrencyFormatInfo;
import com.ibm.icu.impl.Utility;
import com.ibm.icu.text.DecimalFormat;
import com.ibm.icu.text.GeneralMeasureFormat;
-import com.ibm.icu.text.MeasureFormat;
import com.ibm.icu.text.NumberFormat;
import com.ibm.icu.util.Currency;
import com.ibm.icu.util.FormatWidth;
}
private static final String[][] SKIP_CASES = {
- // ICU 52 PluralRules/PluralFormat/CurrencyPluralInfo are not
+ // ICU 52+ PluralRules/PluralFormat/CurrencyPluralInfo are not
// serialization-compatible with previous versions.
{"ICU_50.1", "com.ibm.icu.text.CurrencyPluralInfo.dat"},
{"ICU_51.1", "com.ibm.icu.text.CurrencyPluralInfo.dat"},
{"ICU_50.1", "com.ibm.icu.text.PluralRules.dat"},
{"ICU_51.1", "com.ibm.icu.text.PluralRules.dat"},
- // Currency format changed in 52
- {"ICU_3.6", "com.ibm.icu.util.Currency.dat"},
- {"ICU_50.1", "com.ibm.icu.util.Currency.dat"},
- {"ICU_51.1", "com.ibm.icu.util.Currency.dat"},
-
+ // RuleBasedNumberFormat
{"ICU_3.6", "com.ibm.icu.text.RuleBasedNumberFormat.dat"},
- // ICU 4.8 MessageFormat is not serialization-compatible with previous versions.
+ // ICU 4.8+ MessageFormat is not serialization-compatible with previous versions.
{"ICU_3.6", "com.ibm.icu.text.MessageFormat.dat"},
};