home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / sun / io / ByteToCharConverter.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.9 KB  |  121 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;
  12.  
  13.    public static ByteToCharConverter getDefault() {
  14.       SecurityManager.enablePrivilege("UniversalPropertyRead");
  15.       String var0 = System.getProperty("file.encoding", "8859_1");
  16.       SecurityManager.revertPrivilege();
  17.  
  18.       try {
  19.          return getConverter(var0);
  20.       } catch (UnsupportedEncodingException var1) {
  21.          return new ByteToCharDefault();
  22.       }
  23.    }
  24.  
  25.    public static ByteToCharConverter getConverter(String var0) throws UnsupportedEncodingException {
  26.       String var1 = CharacterEncoding.aliasName(var0);
  27.       if (var1 == null) {
  28.          var1 = var0;
  29.       }
  30.  
  31.       Class var2;
  32.       try {
  33.          var2 = Class.forName(pkgString + ".ByteToChar" + var1);
  34.       } catch (ClassNotFoundException var6) {
  35.          throw new UnsupportedEncodingException();
  36.       }
  37.  
  38.       ByteToCharConverter var3 = null;
  39.  
  40.       try {
  41.          var3 = (ByteToCharConverter)var2.newInstance();
  42.          return var3;
  43.       } catch (InstantiationException var4) {
  44.          throw new UnsupportedEncodingException();
  45.       } catch (IllegalAccessException var5) {
  46.          throw new UnsupportedEncodingException();
  47.       }
  48.    }
  49.  
  50.    public abstract String getCharacterEncoding();
  51.  
  52.    public abstract int convert(byte[] var1, int var2, int var3, char[] var4, int var5, int var6) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException;
  53.  
  54.    public char[] convertAll(byte[] var1) throws MalformedInputException {
  55.       this.reset();
  56.       boolean var2 = this.subMode;
  57.       this.subMode = true;
  58.       char[] var3 = new char[this.getMaxCharsPerByte() * var1.length];
  59.  
  60.       char[] var4;
  61.       try {
  62.          int var7 = this.convert(var1, 0, var1.length, var3, 0, var3.length);
  63.          var7 += this.flush(var3, this.nextByteIndex(), var3.length);
  64.          char[] var8 = new char[var7];
  65.          System.arraycopy(var3, 0, var8, 0, var7);
  66.          var4 = var8;
  67.       } catch (ConversionBufferFullException var12) {
  68.          throw new InternalError("this.getMaxCharsBerByte returned bad value");
  69.       } catch (UnknownCharacterException var13) {
  70.          throw new InternalError();
  71.       } finally {
  72.          this.subMode = var2;
  73.       }
  74.  
  75.       return var4;
  76.    }
  77.  
  78.    public abstract int flush(char[] var1, int var2, int var3) throws MalformedInputException, ConversionBufferFullException;
  79.  
  80.    public abstract void reset();
  81.  
  82.    public int getMaxCharsPerByte() {
  83.       return 1;
  84.    }
  85.  
  86.    public int getBadInputLength() {
  87.       return this.badInputLength;
  88.    }
  89.  
  90.    public int nextCharIndex() {
  91.       return this.charOff;
  92.    }
  93.  
  94.    public int nextByteIndex() {
  95.       return this.byteOff;
  96.    }
  97.  
  98.    public void setSubstitutionMode(boolean var1) {
  99.       this.subMode = var1;
  100.    }
  101.  
  102.    public void setSubstitutionChars(char[] var1) throws IllegalArgumentException {
  103.       if (var1.length > this.getMaxCharsPerByte()) {
  104.          throw new IllegalArgumentException();
  105.       } else {
  106.          this.subChars = new char[var1.length];
  107.          System.arraycopy(var1, 0, this.subChars, 0, var1.length);
  108.       }
  109.    }
  110.  
  111.    public String toString() {
  112.       return "ByteToCharConverter: " + this.getCharacterEncoding();
  113.    }
  114.  
  115.    static {
  116.       SecurityManager.enablePrivilege("UniversalPropertyRead");
  117.       pkgString = System.getProperty("file.encoding.pkg");
  118.       SecurityManager.revertPrivilege();
  119.    }
  120. }
  121.