home *** CD-ROM | disk | FTP | other *** search
- package com.ibm.xml.internal;
-
- import com.ibm.xml.framework.ChunkyByteArray;
- import com.ibm.xml.framework.ParserState;
- import com.ibm.xml.framework.XMLDeclRecognizer;
- import com.ibm.xml.framework.XMLReader;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import org.xml.sax.InputSource;
-
- public class EBCDICRecognizer extends XMLDeclRecognizer {
- public XMLReader recognize(ParserState var1, InputSource var2, ChunkyByteArray var3, boolean var4) throws Exception {
- CharReader var5 = null;
- byte var6 = var3.byteAt(0);
- byte var7 = var3.byteAt(1);
- byte var8 = var3.byteAt(2);
- byte var9 = var3.byteAt(3);
- if (var6 == 76 && var7 == 111 && var8 == -89 && var9 == -108) {
- CharReader var10 = new CharReader(var1, var2.getPublicId(), var2.getSystemId(), new InputStreamReader(var3, "CP037"));
- int var11 = ((XMLDeclRecognizer)this).prescanXMLDeclOrTextDecl(var10, var4);
- if (var11 == -1) {
- var3.rewind();
- var5 = new CharReader(var1, var2.getPublicId(), var2.getSystemId(), new InputStreamReader(var3, "UTF8"));
- return var5;
- } else {
- String var12 = var1.getStringPool().orphanString(var11).toUpperCase();
- if ("ISO-10646-UCS-2".equals(var12)) {
- throw new UnsupportedEncodingException(var12);
- } else if ("ISO-10646-UCS-4".equals(var12)) {
- throw new UnsupportedEncodingException(var12);
- } else if ("UTF-16".equals(var12)) {
- throw new UnsupportedEncodingException(var12);
- } else {
- String var13 = MIME2Java.convert(var12);
- if (var13 == null) {
- if (!var1.getAllowJavaEncodingName()) {
- throw new UnsupportedEncodingException(var12);
- }
-
- var13 = var12;
- }
-
- try {
- var3.rewind();
- var5 = new CharReader(var1, var2.getPublicId(), var2.getSystemId(), new InputStreamReader(var3, var13));
- } catch (UnsupportedEncodingException var15) {
- throw var15;
- } catch (Exception var16) {
- ((Throwable)var16).printStackTrace();
- }
-
- return var5;
- }
- }
- } else {
- return var5;
- }
- }
- }
-