⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sapconverters.java

📁 SAP这个系统的一个转换器
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   SAPConverters.java

package com.sap.mw.jco.util;

import com.sap.mw.jco.JCO;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Hashtable;

// Referenced classes of package com.sap.mw.jco.util:
//            SAPByteToCharConverter, SAPUCBEByteToCharConverter, SAPUCLEByteToCharConverter, SAPUTF8ByteToCharConverter, 
//            SAPNUCByteToCharConverter, SAPCharToByteConverter, SAPCharToUCBEByteConverter, SAPCharToUCLEByteConverter, 
//            SAPCharToUTF8ByteConverter, SAPCharToNUCByteConverter

public class SAPConverters
{

    protected SAPConverters()
    {
    }

    protected static native int nativeInitialize();

    public static SAPByteToCharConverter getSAPByteToCharConverter(String charEncoding)
    {
        SAPByteToCharConverter converter = (SAPByteToCharConverter)m_SAPByteToCharConverters.get(charEncoding);
        if(converter == null)
            synchronized(m_SAPByteToCharConverters)
            {
                converter = (SAPByteToCharConverter)m_SAPByteToCharConverters.get(charEncoding);
                if(converter == null)
                {
                    if(charEncoding != null)
                    {
                        String lowerCharEncoding = charEncoding.toLowerCase();
                        if(lowerCharEncoding.indexOf("41") >= 0)
                        {
                            if("4102".equals(lowerCharEncoding) || "sap4102".equals(lowerCharEncoding))
                                converter = new SAPUCBEByteToCharConverter("SAP4102");
                            else
                            if("4103".equals(lowerCharEncoding) || "sap4103".equals(lowerCharEncoding))
                                converter = new SAPUCLEByteToCharConverter("SAP4103");
                            else
                            if("4110".equals(lowerCharEncoding) || "sap4110".equals(lowerCharEncoding))
                                converter = new SAPUTF8ByteToCharConverter("SAP4110");
                        } else
                        if(lowerCharEncoding.startsWith("utf"))
                        {
                            if("utf-8".equals(lowerCharEncoding) || "utf8".equals(lowerCharEncoding))
                                converter = new SAPUTF8ByteToCharConverter("UTF-8");
                            else
                            if("utf-16".equals(lowerCharEncoding) || "utf16".equals(lowerCharEncoding))
                            {
                                String endian = ((String)AccessController.doPrivileged(new PrivilegedAction() {

                                    public Object run()
                                    {
                                        String prop = System.getProperty("sun.cpu.endian");
                                        if(prop == null)
                                            prop = System.getProperty("sun.io.unicode.encoding", "null");
                                        return prop;
                                    }

                                })).toLowerCase();
                                if(endian.indexOf("little") >= 0)
                                    converter = new SAPUCLEByteToCharConverter("UTF-16LE");
                                else
                                    converter = new SAPUCBEByteToCharConverter("UTF-16BE");
                            } else
                            if("utf-16be".equals(lowerCharEncoding) || "utf16be".equals(lowerCharEncoding) || "utf-16 bigendian".equals(lowerCharEncoding))
                                converter = new SAPUCBEByteToCharConverter("UTF-16BE");
                            else
                            if("utf-16le".equals(lowerCharEncoding) || "utf16le".equals(lowerCharEncoding) || "utf-16 littleendian".equals(lowerCharEncoding))
                                converter = new SAPUCLEByteToCharConverter("UTF-16LE");
                        } else
                        if(lowerCharEncoding.startsWith("unicode"))
                        {
                            if("unicode".equals(lowerCharEncoding))
                            {
                                String endian = ((String)AccessController.doPrivileged(new PrivilegedAction() {

                                    public Object run()
                                    {
                                        String prop = System.getProperty("sun.cpu.endian");
                                        if(prop == null)
                                            prop = System.getProperty("sun.io.unicode.encoding", "null");
                                        return prop;
                                    }

                                })).toLowerCase();
                                if(endian.indexOf("little") >= 0)
                                    converter = new SAPUCLEByteToCharConverter("UnicodeLittle");
                                else
                                    converter = new SAPUCBEByteToCharConverter("UnicodeBig");
                            } else
                            if("unicodebig".equals(lowerCharEncoding) || "unicodebigunmarked".equals(lowerCharEncoding))
                                converter = new SAPUCBEByteToCharConverter("UnicodeBig");
                            else
                            if("unicodelittle".equals(lowerCharEncoding) || "unicodelittleunmarked".equals(lowerCharEncoding))
                                converter = new SAPUCLEByteToCharConverter("UnicodeLittle");
                        } else
                        if("ascii".equals(lowerCharEncoding) || "6100".equals(lowerCharEncoding) || "sap6100".equals(lowerCharEncoding))
                            converter = new SAPNUCByteToCharConverter("SAP1100");
                        else
                        if("ebcdic".equals(lowerCharEncoding))
                            converter = new SAPNUCByteToCharConverter("SAP0120");
                    }
                    if(converter == null)
                        converter = new SAPNUCByteToCharConverter(charEncoding);
                    m_SAPByteToCharConverters.put(charEncoding, converter);
                }
            }
        return converter;
    }

    public static SAPCharToByteConverter getSAPCharToByteConverter(String charEncoding)
    {
        SAPCharToByteConverter converter = (SAPCharToByteConverter)m_SAPCharToByteConverters.get(charEncoding);
        if(converter == null)
            synchronized(m_SAPCharToByteConverters)
            {
                converter = (SAPCharToByteConverter)m_SAPCharToByteConverters.get(charEncoding);
                if(converter == null)
                {
                    if(charEncoding != null)
                    {
                        String lowerCharEncoding = charEncoding.toLowerCase();
                        if(lowerCharEncoding.indexOf("41") >= 0)
                        {
                            if("4102".equals(lowerCharEncoding) || "sap4102".equals(lowerCharEncoding))
                                converter = new SAPCharToUCBEByteConverter("SAP4102");
                            else
                            if("4103".equals(lowerCharEncoding) || "sap4103".equals(lowerCharEncoding))
                                converter = new SAPCharToUCLEByteConverter("SAP4103");
                            else
                            if("4110".equals(lowerCharEncoding) || "sap4110".equals(lowerCharEncoding))
                                converter = new SAPCharToUTF8ByteConverter("SAP4110");
                        } else
                        if(lowerCharEncoding.startsWith("utf"))
                        {
                            if("utf-8".equals(lowerCharEncoding) || "utf8".equals(lowerCharEncoding))
                                converter = new SAPCharToUTF8ByteConverter("UTF-8");
                            else
                            if("utf-16".equals(lowerCharEncoding) || "utf16".equals(lowerCharEncoding))
                            {
                                String endian = ((String)AccessController.doPrivileged(new PrivilegedAction() {

                                    public Object run()
                                    {
                                        String prop = System.getProperty("sun.cpu.endian");
                                        if(prop == null)
                                            prop = System.getProperty("sun.io.unicode.encoding", "null");
                                        return prop;
                                    }

                                })).toLowerCase();
                                if(endian.indexOf("little") >= 0)
                                    converter = new SAPCharToUCLEByteConverter("UTF-16LE");
                                else
                                    converter = new SAPCharToUCBEByteConverter("UTF-16BE");
                            } else
                            if("utf-16be".equals(lowerCharEncoding) || "utf16be".equals(lowerCharEncoding) || "utf-16 bigendian".equals(lowerCharEncoding))
                                converter = new SAPCharToUCBEByteConverter("UTF-16BE");
                            else
                            if("utf-16le".equals(lowerCharEncoding) || "utf16le".equals(lowerCharEncoding) || "utf-16 littleendian".equals(lowerCharEncoding))
                                converter = new SAPCharToUCLEByteConverter("UTF-16LE");
                        } else
                        if(lowerCharEncoding.startsWith("unicode"))
                        {
                            if("unicode".equals(lowerCharEncoding))
                            {
                                String endian = ((String)AccessController.doPrivileged(new PrivilegedAction() {

                                    public Object run()
                                    {
                                        String prop = System.getProperty("sun.cpu.endian");
                                        if(prop == null)
                                            prop = System.getProperty("sun.io.unicode.encoding", "null");
                                        return prop;
                                    }

                                })).toLowerCase();
                                if(endian.indexOf("little") >= 0)
                                    converter = new SAPCharToUCLEByteConverter("UnicodeLittle");
                                else
                                    converter = new SAPCharToUCBEByteConverter("UnicodeBig");
                            } else
                            if("unicodebig".equals(lowerCharEncoding) || "unicodebigunmarked".equals(lowerCharEncoding))
                                converter = new SAPCharToUCBEByteConverter("UnicodeBig");
                            else
                            if("unicodelittle".equals(lowerCharEncoding) || "unicodelittleunmarked".equals(lowerCharEncoding))
                                converter = new SAPCharToUCLEByteConverter("UnicodeLittle");
                        } else
                        if("ascii".equals(lowerCharEncoding) || "6100".equals(lowerCharEncoding) || "sap6100".equals(lowerCharEncoding))
                            converter = new SAPCharToNUCByteConverter("SAP1100");
                        else
                        if("ebcdic".equals(lowerCharEncoding))
                            converter = new SAPCharToNUCByteConverter("SAP0120");
                    }
                    if(converter == null)
                        converter = new SAPCharToNUCByteConverter(charEncoding);
                    m_SAPCharToByteConverters.put(charEncoding, converter);
                }
            }
        return converter;
    }

    private static Hashtable m_SAPByteToCharConverters = new Hashtable(11);
    private static Hashtable m_SAPCharToByteConverters = new Hashtable(11);

    static 
    {
        JCO.getProperties();
        nativeInitialize();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -