jdk/src/share/classes/sun/io/CharToByteISCII91.java
changeset 10372 2f6d68f22eae
parent 10321 64f7ee2f31dd
parent 10371 7da2112e4236
child 10373 d4c5e59b82f8
--- a/jdk/src/share/classes/sun/io/CharToByteISCII91.java	Mon Aug 29 14:27:21 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.io;
-
-import sun.nio.cs.ext.ISCII91;
-
-/*
- * Copyright (c) 1998 International Business Machines.
- * All Rights Reserved.
- *
- * Author : Sunanda Bera, C. Thirumalesh
- * Last Modified : 11,December,1998
- *
- * Purpose : Defines class CharToByteISCII91.
- *
- *
- * Revision History
- * ======== =======
- *
- * Date        By            Description
- * ----        --            -----------
- * March 29, 1999 John Raley Removed MalformedInputException; modified substitution logic
- *
- */
-
-/**
- * Converter class. Converts between ISCII91 encoding and Unicode encoding.
- * ISCII91 is the character encoding as defined in Indian Standard document
- * IS 13194:1991 ( Indian Script Code for Information Interchange ).
- *
- * @see sun.io.CharToByteConverter
- */
-
-/*
- * {jbr} I am not sure this class adheres to code converter conventions.
- * Need to investigate.
- * Might should recode as a subclass of CharToByteSingleByte.
- */
-
-public class CharToByteISCII91 extends CharToByteConverter {
-
-        private static final byte NO_CHAR = (byte)255;
-
-        //private final static ISCII91 nioCoder = new ISCII91();
-        private final static byte[] directMapTable = ISCII91.getEncoderMappingTable();
-
-        private static final char NUKTA_CHAR = '\u093c';
-        private static final char HALANT_CHAR = '\u094d';
-
-
-/**
- * @return true for Devanagari and ASCII range and for the special characters
- *              Zero Width Joiner and Zero Width Non-Joiner
- * @see sun.io.CharToByteConverter#canConvert
- *
- */
-        public boolean canConvert(char ch) {
-        //check for Devanagari range,ZWJ,ZWNJ and ASCII range.
-        return ((ch >= 0x0900 && ch <= 0x097f) || (ch == 0x200d || ch == 0x200c)
-                                || (ch >= 0x0000 && ch <= 0x007f) );
-        } //canConvert()
-/**
- * Converts both Devanagari and ASCII range of characters.
- * @see sun.io.CharToByteConverter#convert
- */
-    public int convert(char[] input, int inStart, int inEnd, byte[] output, int outStart, int outEnd) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException {
-
-        charOff = inStart;
-        byteOff = outStart;
-
-        for (;charOff < inEnd; charOff++) {
-
-            char inputChar = input[charOff];
-            int index = Integer.MIN_VALUE;
-            boolean isSurrogatePair = false;
-
-            //check if input is in ASCII RANGE
-            if (inputChar >= 0x0000 && inputChar <= 0x007f) {
-                if (byteOff >= outEnd) {
-                        throw new ConversionBufferFullException();
-                }
-                output[byteOff++] = (byte) inputChar;
-                continue;
-            }
-
-            // if inputChar == ZWJ replace it with halant
-            // if inputChar == ZWNJ replace it with Nukta
-            if (inputChar == 0x200c) {
-                inputChar = HALANT_CHAR;
-            }
-            else if (inputChar == 0x200d) {
-                inputChar = NUKTA_CHAR;
-            }
-
-            if (inputChar >= 0x0900 && inputChar <= 0x097f) {
-                index = ((int)(inputChar) - 0x0900)*2;
-            }
-
-            // If input char is a high surrogate, ensure that the following
-            // char is a low surrogate.  If not, throw a MalformedInputException.
-            // Leave index untouched so substitution or an UnknownCharacterException
-            // will result.
-            else if (inputChar >= 0xd800 && inputChar <= 0xdbff) {
-                if (charOff < inEnd-1) {
-                    char nextChar = input[charOff];
-                    if (nextChar >= 0xdc00 && nextChar <= 0xdfff) {
-                        charOff++;
-                        isSurrogatePair = true;
-                    }
-                }
-                if (!isSurrogatePair) {
-                    badInputLength = 1;
-                    throw new MalformedInputException();
-                }
-            }
-            else if (inputChar >= 0xdc00 && inputChar <= 0xdfff) {
-                badInputLength = 1;
-                throw new MalformedInputException();
-            }
-
-            if (index == Integer.MIN_VALUE || directMapTable[index] == NO_CHAR) {
-                if (subMode) {
-                    if (byteOff + subBytes.length >= outEnd) {
-                            throw new ConversionBufferFullException();
-                    }
-                    System.arraycopy(subBytes, 0, output, byteOff, subBytes.length);
-                    byteOff += subBytes.length;
-                } else {
-                    badInputLength = isSurrogatePair? 2 : 1;
-                    throw new UnknownCharacterException();
-                }
-            }
-            else {
-                if(byteOff >= outEnd) {
-                    throw new ConversionBufferFullException();
-                }
-                output[byteOff++] = directMapTable[index++];
-                if(directMapTable[index] != NO_CHAR) {
-                    if(byteOff >= outEnd) {
-                            throw new ConversionBufferFullException();
-                    }
-                    output[byteOff++] = directMapTable[index];
-                }
-            }
-
-        } //end for
-
-        return byteOff - outStart;
-    } //end of routine convert.
-
-/**
-* @see sun.io.CharToByteConverter#flush
-*/
-        public int flush( byte[] output, int outStart, int outEnd )
-        throws MalformedInputException, ConversionBufferFullException {
-        byteOff = charOff = 0;
-        return 0;
-        }//flush()
-/**
- * @return The character encoding as a String.
- */
-        public String getCharacterEncoding() {
-        return "ISCII91";
-        }//getCharacterEncoding
-/**
- * @see sun.io.CharToByteConverter#getMaxBytesPerChar
- */
-        public int getMaxBytesPerChar() {
-        return 2;
-        }//getMaxBytesPerChar()
-/**
- * @see sun.io.CharToByteConverter#reset
- */
-        public void reset() {
-        byteOff = charOff = 0;
-        }
-} //end of class definition