home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / io / ByteToCharSJIS.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  12.6 KB  |  122 lines

  1. package sun.io;
  2.  
  3. public class ByteToCharSJIS extends ByteToCharJIS0208 {
  4.    private static final boolean[] leadByte = new boolean[]{false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false};
  5.    private static final boolean[] secondByte = new boolean[]{false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false};
  6.    private static final char[] singleByteToChar = new char[]{'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006', '\u0007', '\b', '\t', '\n', '\u000b', '\f', '\r', '\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '\u007f', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩╜í', '∩╜ó', '∩╜ú', '∩╜ñ', '∩╜Ñ', '∩╜ª', '∩╜º', '∩╜¿', '∩╜⌐', '∩╜¬', '∩╜½', '∩╜¼', '∩╜¡', '∩╜«', '∩╜»', '∩╜░', '∩╜▒', '∩╜▓', '∩╜│', '∩╜┤', '∩╜╡', '∩╜╢', '∩╜╖', '∩╜╕', '∩╜╣', '∩╜║', '∩╜╗', '∩╜╝', '∩╜╜', '∩╜╛', '∩╜┐', '∩╛Ç', '∩╛ü', '∩╛é', '∩╛â', '∩╛ä', '∩╛à', '∩╛å', '∩╛ç', '∩╛ê', '∩╛ë', '∩╛è', '∩╛ï', '∩╛î', '∩╛ì', '∩╛Ä', '∩╛Å', '∩╛É', '∩╛æ', '∩╛Æ', '∩╛ô', '∩╛ö', '∩╛ò', '∩╛û', '∩╛ù', '∩╛ÿ', '∩╛Ö', '∩╛Ü', '∩╛¢', '∩╛£', '∩╛¥', '∩╛₧', '∩╛ƒ', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜', '∩┐╜'};
  7.    private byte savedFirst;
  8.  
  9.    public int flush(char[] var1, int var2, int var3) throws MalformedInputException {
  10.       if (this.savedFirst != 0) {
  11.          this.savedFirst = 0;
  12.          super.badInputLength = 0;
  13.          throw new MalformedInputException();
  14.       } else {
  15.          super.byteOff = super.charOff = 0;
  16.          return 0;
  17.       }
  18.    }
  19.  
  20.    public int convert(byte[] var1, int var2, int var3, char[] var4, int var5, int var6) throws UnknownCharacterException, MalformedInputException, ConversionBufferFullException {
  21.       byte[] var13 = var1;
  22.       super.byteOff = var2;
  23.       if (this.savedFirst != 0) {
  24.          if (!secondByte[var1[0] & 255]) {
  25.             super.badInputLength = 0;
  26.             throw new MalformedInputException();
  27.          }
  28.  
  29.          byte[] var14 = new byte[var3 - var2 + 1];
  30.          var14[0] = this.savedFirst;
  31.          System.arraycopy(var1, var2, var14, 1, var3 - var2);
  32.          --super.byteOff;
  33.          var13 = var14;
  34.          var2 = 0;
  35.          var3 = var14.length;
  36.          this.savedFirst = 0;
  37.       }
  38.  
  39.       super.charOff = var5;
  40.  
  41.       byte var9;
  42.       for(int var12 = var2; var12 < var3; super.byteOff += var9) {
  43.          int var7 = var13[var12];
  44.          if (var7 < 0) {
  45.             var7 += 256;
  46.          }
  47.  
  48.          char var11;
  49.          if (leadByte[var7]) {
  50.             var9 = 2;
  51.             if (var12 + 1 >= var3) {
  52.                this.savedFirst = (byte)var7;
  53.                ++super.byteOff;
  54.                break;
  55.             }
  56.  
  57.             int var8 = var13[var12 + 1];
  58.             if (var8 < 0) {
  59.                var8 += 256;
  60.             }
  61.  
  62.             if (!secondByte[var8]) {
  63.                super.badInputLength = 2;
  64.                throw new MalformedInputException();
  65.             }
  66.  
  67.             if (var7 == 129 && var8 == 95) {
  68.                var11 = '∩╝╝';
  69.             } else {
  70.                if (var7 >= 224) {
  71.                   var7 -= 64;
  72.                }
  73.  
  74.                var7 -= 129;
  75.                if (var8 >= 127) {
  76.                   --var8;
  77.                }
  78.  
  79.                var8 -= 64;
  80.                int var10 = var7 * 188 + var8;
  81.  
  82.                try {
  83.                   var11 = super.jisx0208Chars[var10];
  84.                } catch (ArrayIndexOutOfBoundsException var15) {
  85.                   var11 = '∩┐╜';
  86.                }
  87.             }
  88.          } else {
  89.             var9 = 1;
  90.             var11 = singleByteToChar[var7];
  91.          }
  92.  
  93.          if (var11 == '∩┐╜') {
  94.             if (!super.subMode) {
  95.                super.badInputLength = var9;
  96.                throw new UnknownCharacterException();
  97.             }
  98.  
  99.             var11 = super.subChars[0];
  100.          }
  101.  
  102.          if (super.charOff >= var6) {
  103.             throw new ConversionBufferFullException();
  104.          }
  105.  
  106.          var4[super.charOff++] = var11;
  107.          var12 += var9;
  108.       }
  109.  
  110.       return super.charOff - var5;
  111.    }
  112.  
  113.    public String getCharacterEncoding() {
  114.       return "SJIS";
  115.    }
  116.  
  117.    public void reset() {
  118.       super.byteOff = super.charOff = 0;
  119.       this.savedFirst = 0;
  120.    }
  121. }
  122.