📄 jco.java
字号:
dfies_v6u.addInfo("SCRTEXT_S", 0, -20, 912);
dfies_v6u.addInfo("SCRTEXT_M", 0, -40, 932);
dfies_v6u.addInfo("SCRTEXT_L", 0, -80, 972);
dfies_v6u.addInfo("KEYFLAG", 0, -2, 1052);
dfies_v6u.addInfo("LOWERCASE", 0, -2, 1054);
dfies_v6u.addInfo("MAC", 0, -2, 1056);
dfies_v6u.addInfo("GENKEY", 0, -2, 1058);
dfies_v6u.addInfo("NOFORKEY", 0, -2, 1060);
dfies_v6u.addInfo("VALEXI", 0, -2, 1062);
dfies_v6u.addInfo("NOAUTHCH", 0, -2, 1064);
dfies_v6u.addInfo("SIGN", 0, -2, 1066);
dfies_v6u.addInfo("DYNPFLD", 0, -2, 1068);
dfies_v6u.addInfo("F4AVAILABL", 0, -2, 1070);
dfies_v6u.addInfo("COMPTYPE", 0, -2, 1072);
dfies_v6u.addInfo("LFIELDNAME", 0, -264, 1074);
dfies_v6u.setTabLength(1338);
ddtypelist_v6u.addInfo("TYPENAME", 0, -60, 0);
ddtypelist_v6u.addInfo("TYPEKIND", 0, -8, 60);
ddtypelist_v6u.addInfo("FIELDS", 99, -6, 72, 0, 0, dfies_v6u);
ddtypelist_v6u.setTabLength(80);
}
public Repository(String name, String pool_name)
{
this(name, new String[] {
pool_name
});
}
public Repository(String name, String pool_names[])
{
super(name);
this.pool_names = new String[0];
repository_version = 0;
client = null;
if(pool_names != null)
this.pool_names = pool_names;
if(JCO.trace_level > 0)
JCO.fireTrace(1, "[JAV-LAYER] JCO.Repository create Repository with " + (pool_names.length != 1 ? String.valueOf(pool_names.length) : pool_names[0]) + " pool(s)");
}
public Repository(String name, Client client)
{
super(name);
pool_names = new String[0];
repository_version = 0;
this.client = null;
this.client = client;
}
}
public static abstract class BasicRepository
implements IRepository
{
public String getName()
{
return name;
}
public IFunctionTemplate getFunctionTemplate(String function_name)
{
if(function_name == null)
throw new Exception(131, "JCO_ERROR_ILLEGAL_ARGUMENT", "Function name equals null is not allowed.");
IMetaData fmeta = null;
IMetaData smeta = null;
try
{
fmeta = getFunctionInterface(function_name);
}
catch(AbapException ex)
{
if(!ex.getKey().equalsIgnoreCase("FU_NOT_FOUND"))
throw ex;
}
if(fmeta == null)
return null;
function_name = fmeta.getName();
int num_fields = fmeta.getFieldCount();
int ifields = 0;
int efields = 0;
int tfields = 0;
int xfields = 0;
for(int i = 0; i < num_fields; i++)
if(fmeta.isImport(i) || fmeta.isExport(i))
{
if(fmeta.isExport(i))
efields++;
if(fmeta.isImport(i))
ifields++;
} else
if(fmeta.isTable(i))
tfields++;
else
if(fmeta.isException(i))
xfields++;
MetaData imeta = ifields <= 0 ? null : new MetaData("INPUT", ifields);
MetaData emeta = efields <= 0 ? null : new MetaData("OUTPUT", efields);
MetaData tmeta = tfields <= 0 ? null : new MetaData("TABLES", tfields);
Vector xmeta = xfields <= 0 ? null : new Vector(xfields);
for(int i = 0; i < num_fields; i++)
{
int flags = fmeta.isOptional(i) ? 4 : 0;
if(fmeta.isNestedType1Structure(i))
flags |= 0x80;
if(fmeta.isImport(i) && !fmeta.isExport(i))
{
flags |= 1;
int length;
int charlength;
if(fmeta.getType(i) == 17 || fmeta.getType(i) == 99)
{
smeta = getStructureDefinition(fmeta.getTabName(i));
if(smeta == null)
return null;
length = fmeta.getName(i).length();
charlength = length;
} else
{
length = fmeta.getInternalLength(i);
charlength = fmeta.getLength(i);
}
imeta.addInfo(fmeta.getName(i), fmeta.getType(i), charlength, length, -1, fmeta.getDecimals(i), fmeta.getDefault(i), fmeta.getDescription(i), flags, smeta, fmeta.getExtendedFieldMetaData(i));
} else
if(fmeta.isExport(i) && !fmeta.isImport(i))
{
flags |= 2;
int length;
int charlength;
if(fmeta.getType(i) == 17 || fmeta.getType(i) == 99)
{
smeta = getStructureDefinition(fmeta.getTabName(i));
if(smeta == null)
return null;
length = fmeta.getName(i).length();
charlength = length;
} else
{
length = fmeta.getInternalLength(i);
charlength = fmeta.getLength(i);
}
emeta.addInfo(fmeta.getName(i), fmeta.getType(i), charlength, length, -1, fmeta.getDecimals(i), fmeta.getDefault(i), fmeta.getDescription(i), flags, smeta, fmeta.getExtendedFieldMetaData(i));
} else
if(fmeta.isImport(i) && fmeta.isExport(i))
{
flags |= 3;
int length;
int charlength;
if(fmeta.getType(i) == 17 || fmeta.getType(i) == 99)
{
smeta = getStructureDefinition(fmeta.getTabName(i));
if(smeta == null)
return null;
length = fmeta.getName(i).length();
charlength = length;
} else
{
length = fmeta.getInternalLength(i);
charlength = fmeta.getLength(i);
}
imeta.addInfo(fmeta.getName(i), fmeta.getType(i), charlength, length, -1, fmeta.getDecimals(i), fmeta.getDefault(i), fmeta.getDescription(i), flags, smeta, fmeta.getExtendedFieldMetaData(i));
emeta.addInfo(fmeta.getName(i), fmeta.getType(i), charlength, length, -1, fmeta.getDecimals(i), fmeta.getDefault(i), fmeta.getDescription(i), flags, smeta, fmeta.getExtendedFieldMetaData(i));
} else
if(fmeta.isTable(i))
{
smeta = getTableDefinition(fmeta.getTabName(i));
if(smeta == null)
return null;
int length = fmeta.getName(i).length();
tmeta.addInfo(fmeta.getName(i), fmeta.getType(i), length, length, -1, fmeta.getDecimals(i), fmeta.getDefault(i), fmeta.getDescription(i), flags, smeta, fmeta.getExtendedFieldMetaData(i));
} else
if(fmeta.isException(i))
xmeta.addElement(new AbapException(fmeta.getName(i), fmeta.getDescription(i)));
}
return new FunctionTemplate(function_name, imeta, emeta, tmeta, xmeta);
}
public IMetaData getFunctionInterface(String function_name)
{
if(function_name == null)
throw new Exception(131, "JCO_ERROR_ILLEGAL_ARGUMENT", "Function name equals null is not allowed.");
else
return (IMetaData)function_cache.get(function_name);
}
public IMetaData getStructureDefinition(String structure_name)
{
if(structure_name == null)
throw new Exception(131, "JCO_ERROR_ILLEGAL_ARGUMENT", "Structure name equals null is not allowed.");
else
return (IMetaData)structure_cache.get(structure_name);
}
public IMetaData getTableDefinition(String table_name)
{
return getStructureDefinition(table_name);
}
public IRepository getNextRepository()
{
return next_repository;
}
public void setNextRepository(IRepository next)
{
next_repository = next;
}
public synchronized void addFunctionInterfaceToCache(IMetaData meta)
{
if(meta != null)
addFunctionInterfaceToCache(meta.getName(), meta);
}
public synchronized void addFunctionInterfaceToCache(String key, IMetaData meta)
{
if(key == null || meta == null)
return;
if(JCO.trace_level > 4)
JCO.fireTrace(5, "[JAV-LAYER] addFunctionInterfaceToCache(\"" + key + "\") inserting into cache");
function_cache.put(key, meta);
}
public synchronized void addStructureDefinitionToCache(IMetaData meta)
{
if(meta != null)
addStructureDefinitionToCache(meta.getName(), meta);
}
public synchronized void addStructureDefinitionToCache(String key, IMetaData meta)
{
if(key == null || meta == null)
return;
if(JCO.trace_level > 4)
JCO.fireTrace(5, "[JAV-LAYER] addStructureDefinitionToCache(\"" + key + "\") inserting into cache");
structure_cache.put(key, meta);
}
public synchronized void removeFunctionInterfaceFromCache(String function_name)
{
function_cache.remove(function_name);
}
public synchronized void removeStructureDefinitionFromCache(String structure_name)
{
structure_cache.remove(structure_name);
}
public synchronized String[] getCachedFunctionInterfaces()
{
String list[] = new String[function_cache.size()];
int i = 0;
for(Enumeration e = function_cache.keys(); e.hasMoreElements();)
list[i++] = (String)e.nextElement();
return list;
}
public synchronized String[] getCachedStructureDefinitions()
{
String list[] = new String[structure_cache.size()];
int i = 0;
for(Enumeration e = structure_cache.keys(); e.hasMoreElements();)
list[i++] = (String)e.nextElement();
return list;
}
public synchronized void save(String filename)
throws IOException
{
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(filename));
try
{
os.writeObject(name);
os.wr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -