home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / io / ByteToCharConverter.class (.txt) next >
Encoding:
Java Class File  |  1998-04-23  |  3.3 KB  |  132 lines

  1. package sun.io;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4.  
  5. public abstract class ByteToCharConverter {
  6.    protected boolean subMode = true;
  7.    protected char[] subChars = new char[]{'∩┐╜'};
  8.    protected int charOff;
  9.    protected int byteOff;
  10.    protected int badInputLength;
  11.    private static String pkgString = System.getProperty("file.encoding.pkg");
  12.    private static Class defClassCache;
  13.  
  14.    private static Class getConverterClass(String var0) throws ClassNotFoundException {
  15.       Object var1 = null;
  16.       String var2 = CharacterEncoding.aliasName(var0);
  17.       if (var2 == null) {
  18.          var2 = var0;
  19.       }
  20.  
  21.       return Class.forName(pkgString + ".ByteToChar" + var2);
  22.    }
  23.  
  24.    public static ByteToCharConverter getDefault() {
  25.       if (defClassCache == null) {
  26.          return new ByteToCharDefault();
  27.       } else {
  28.          try {
  29.             return (ByteToCharConverter)defClassCache.newInstance();
  30.          } catch (InstantiationException var0) {
  31.             return new ByteToCharDefault();
  32.          } catch (IllegalAccessException var1) {
  33.             return new ByteToCharDefault();
  34.          }
  35.       }
  36.    }
  37.  
  38.    public static ByteToCharConverter getConverter(String var0) throws UnsupportedEncodingException {
  39.       ByteToCharConverter var2 = null;
  40.  
  41.       Class var1;
  42.       try {
  43.          var1 = getConverterClass(var0);
  44.       } catch (ClassNotFoundException var5) {
  45.          throw new UnsupportedEncodingException();
  46.       }
  47.  
  48.       try {
  49.          var2 = (ByteToCharConverter)var1.newInstance();
  50.          return var2;
  51.       } catch (InstantiationException var3) {
  52.          throw new UnsupportedEncodingException();
  53.       } catch (IllegalAccessException var4) {
  54.          throw new UnsupportedEncodingException();
  55.       }
  56.    }
  57.  
  58.    public abstract String getCharacterEncoding();
  59.  
  60.    public abstract int convert(byte[] var1, int var2, int var3, char[] var4, int var5, int var6) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException;
  61.  
  62.    public char[] convertAll(byte[] var1) throws MalformedInputException {
  63.       this.reset();
  64.       boolean var2 = this.subMode;
  65.       this.subMode = true;
  66.       char[] var3 = new char[this.getMaxCharsPerByte() * var1.length];
  67.  
  68.       char[] var4;
  69.       try {
  70.          int var7 = this.convert(var1, 0, var1.length, var3, 0, var3.length);
  71.          var7 += this.flush(var3, this.nextByteIndex(), var3.length);
  72.          char[] var8 = new char[var7];
  73.          System.arraycopy(var3, 0, var8, 0, var7);
  74.          var4 = var8;
  75.       } catch (ConversionBufferFullException var12) {
  76.          throw new InternalError("this.getMaxCharsBerByte returned bad value");
  77.       } catch (UnknownCharacterException var13) {
  78.          throw new InternalError();
  79.       } finally {
  80.          this.subMode = var2;
  81.       }
  82.  
  83.       return var4;
  84.    }
  85.  
  86.    public abstract int flush(char[] var1, int var2, int var3) throws MalformedInputException, ConversionBufferFullException;
  87.  
  88.    public abstract void reset();
  89.  
  90.    public int getMaxCharsPerByte() {
  91.       return 1;
  92.    }
  93.  
  94.    public int getBadInputLength() {
  95.       return this.badInputLength;
  96.    }
  97.  
  98.    public int nextCharIndex() {
  99.       return this.charOff;
  100.    }
  101.  
  102.    public int nextByteIndex() {
  103.       return this.byteOff;
  104.    }
  105.  
  106.    public void setSubstitutionMode(boolean var1) {
  107.       this.subMode = var1;
  108.    }
  109.  
  110.    public void setSubstitutionChars(char[] var1) throws IllegalArgumentException {
  111.       if (var1.length > this.getMaxCharsPerByte()) {
  112.          throw new IllegalArgumentException();
  113.       } else {
  114.          this.subChars = new char[var1.length];
  115.          System.arraycopy(var1, 0, this.subChars, 0, var1.length);
  116.       }
  117.    }
  118.  
  119.    public String toString() {
  120.       return "ByteToCharConverter: " + this.getCharacterEncoding();
  121.    }
  122.  
  123.    static {
  124.       try {
  125.          String var0 = System.getProperty("file.encoding", "8859_1");
  126.          defClassCache = getConverterClass(var0);
  127.       } catch (ClassNotFoundException var1) {
  128.          defClassCache = null;
  129.       }
  130.    }
  131. }
  132.