home *** CD-ROM | disk | FTP | other *** search
- package sun.io;
-
- import java.io.UnsupportedEncodingException;
- import java.lang.ref.SoftReference;
- import java.security.AccessController;
- import sun.security.action.GetPropertyAction;
-
- class Converters {
- private static Object lock;
- private static String converterPackageName;
- private static String defaultEncoding;
- public static final int BYTE_TO_CHAR = 0;
- public static final int CHAR_TO_BYTE = 1;
- private static final String[] converterPrefix;
- private static SoftReference[] classCache;
- // $FF: synthetic field
- static Class class$sun$io$Converters;
-
- private Converters() {
- }
-
- private static String getConverterPackageName() {
- String var0 = converterPackageName;
- if (var0 != null) {
- return var0;
- } else {
- GetPropertyAction var1 = new GetPropertyAction("file.encoding.pkg");
- var0 = (String)AccessController.doPrivileged(var1);
- if (var0 != null) {
- converterPackageName = var0;
- } else {
- var0 = "sun.io";
- }
-
- return var0;
- }
- }
-
- private static Class getConverterClass(int var0, String var1) throws UnsupportedEncodingException {
- String var2 = null;
- if (!var1.equals("ISO8859_1")) {
- if (var1.equals("8859_1")) {
- var2 = "ISO8859_1";
- } else {
- var2 = CharacterEncoding.aliasName(var1);
- }
- }
-
- if (var2 == null) {
- var2 = var1;
- }
-
- try {
- return Class.forName(getConverterPackageName() + "." + converterPrefix[var0] + var2);
- } catch (ClassNotFoundException var4) {
- throw new UnsupportedEncodingException(var2);
- }
- }
-
- private static Object newConverter(String var0, Class var1) throws UnsupportedEncodingException {
- try {
- return var1.newInstance();
- } catch (InstantiationException var4) {
- throw new UnsupportedEncodingException(var0);
- } catch (IllegalAccessException var5) {
- throw new UnsupportedEncodingException(var0);
- }
- }
-
- static Object newConverter(int var0, String var1) throws UnsupportedEncodingException {
- Object var3 = lock;
- Class var2;
- synchronized(var3) {
- var2 = getConverterClass(var0, var1);
- }
-
- return newConverter(var1, var2);
- }
-
- private static Class getDefaultConverterClass(int var0) {
- boolean var1 = false;
- SoftReference var2 = classCache[var0];
- if (var2 != null) {
- Class var3 = (Class)var2.get();
- if (var3 != null) {
- return var3;
- }
-
- classCache[var0] = null;
- }
-
- String var9 = defaultEncoding;
- if (defaultEncoding != null) {
- var1 = true;
- } else {
- GetPropertyAction var4 = new GetPropertyAction("file.encoding");
- var9 = (String)AccessController.doPrivileged(var4);
- if (var9 != null) {
- defaultEncoding = var9;
- var1 = true;
- } else {
- var9 = "ISO8859_1";
- }
- }
-
- Class var10;
- try {
- var10 = getConverterClass(var0, var9);
- if (var1) {
- classCache[var0] = new SoftReference(var10);
- }
- } catch (UnsupportedEncodingException var8) {
- try {
- var10 = getConverterClass(var0, "ISO8859_1");
- } catch (UnsupportedEncodingException var7) {
- throw new InternalError("Cannot find default " + converterPrefix[var0] + " converter class");
- }
- }
-
- return var10;
- }
-
- static Object newDefaultConverter(int var0) {
- Object var2 = lock;
- Class var1;
- synchronized(var2) {
- var1 = getDefaultConverterClass(var0);
- }
-
- try {
- return newConverter("", var1);
- } catch (UnsupportedEncodingException var4) {
- throw new InternalError("Cannot instantiate default converter class " + var1.getName());
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- lock = class$sun$io$Converters == null ? (class$sun$io$Converters = class$("sun.io.Converters")) : class$sun$io$Converters;
- converterPackageName = null;
- defaultEncoding = null;
- converterPrefix = new String[]{"ByteToChar", "CharToByte"};
- classCache = new SoftReference[2];
- }
- }
-