📄 sapconverters.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 + -