📄 jco$repository.java
字号:
if(version >= 400 && version < 462)
{
imp.appendValue("TABNAME", 0, 30, name);
imp.appendValue("ALL_TYPES", 0, 1, "X");
st x030l_wa = JCO.createStructure(x030l_v4);
exp.appendValue("X030L_WA", x030l_wa);
st dfies_wa = JCO.createStructure(dfies_v4);
exp.appendValue("DFIES_WA", dfies_wa);
dfies_wa.alue("", 0);
JCO$Table dfies_tab = JCO.createTable(dfies_v4);
tab.appendValue("DFIES_TAB", dfies_tab);
function = new nit>("DDIF_FIELDINFO_GET", imp, exp, tab);
execute(client, function);
int num_rows = dfies_tab.mRows();
if(num_rows == 0)
{
imp.alue(dfies_wa.tring(6), 0);
execute(client, function);
}
num_rows = dfies_tab.mRows();
meta = new nit>(name, num_rows);
meta.tTabLength(x030l_wa.nt(4));
for(int irow = 0; irow < num_rows; irow++)
{
String stype = dfies_tab.tring(13);
int ptype = JCO.getJCOType(stype.length() <= 0 ? ' ' : stype.charAt(0));
meta.dInfo(dfies_tab.tring(1), ptype, dfies_tab.nt(9), dfies_tab.nt(4), dfies_tab.nt(11), null, dfies_tab.tring(27), 0, null, null);
dfies_tab.ow();
}
dfies_tab.Row();
queryStructureInterfaceEpilog(client, meta, dfies_tab);
} else
if(version >= 462)
{
imp.appendValue("TABNAME", 0, unicode_factor * 30, name);
imp.appendValue("ALL_TYPES", 0, unicode_factor * 1, "X");
JCO$Structure x030l_wa;
JCO$Structure dfies_wa;
JCO$Table lines_descr;
JCO$Table dfies_tab;
if(version < 500)
{
IMetaData metatyp = x030l_v4;
x030l_wa = JCO.createStructure(metatyp);
dfies_wa = JCO.createStructure(dfies_v5);
lines_descr = JCO.createTable(ddtypelist_v5);
dfies_tab = JCO.createTable(dfies_v5);
} else
if(!is_unicode)
{
IMetaData metatyp = x030l_v5;
x030l_wa = JCO.createStructure(metatyp);
dfies_wa = JCO.createStructure(dfies_v5);
lines_descr = JCO.createTable(ddtypelist_v5);
dfies_tab = JCO.createTable(dfies_v5);
} else
{
IMetaData metatyp = x030l_v6u;
x030l_wa = JCO.createStructure(metatyp);
dfies_wa = JCO.createStructure(dfies_v6u);
lines_descr = JCO.createTable(ddtypelist_v6u);
dfies_tab = JCO.createTable(dfies_v6u);
}
exp.appendValue("X030L_WA", x030l_wa);
exp.appendValue("DFIES_WA", dfies_wa);
exp.appendValue("DDOBJTYPE", 0, unicode_factor * 31, (String)null);
exp.appendValue("LINES_DESCR", lines_descr);
tab.appendValue("DFIES_TAB", dfies_tab);
function = new nit>("DDIF_FIELDINFO_GET", imp, exp, tab);
execute(client, function);
meta = new nit>(name);
if(x030l_wa.tring(8).equals("L"))
if(lines_descr.mRows() == 1)
{
dfies_tab = lines_descr.able(2);
meta.pe_name = lines_descr.tring(0);
} else
if(dfies_tab.mRows() == 0)
dfies_tab.rom(dfies_wa);
byte flag3 = x030l_wa.yteArray(13)[0];
boolean isNestedType1 = (flag3 & 1) != 0 && (flag3 & 2) == 0;
meta.tTabLength(x030l_wa.nt(4));
meta.pe1_data = isNestedType1 ? new pe1Data(meta) : null;
meta = constructMetaData(client, version, is_unicode, dfies_tab, lines_descr, meta, null, 0, 1);
if(meta.pe1_data != null)
meta.pe1_data.constructMetaData();
}
return meta;
}
private boolean checkType1(pe1Data.constructMetaData meta)
{
for(int i = 0; i < meta.pe.length; i++)
switch(meta.pe[i])
{
default:
break;
case 17: // '\021'
if(meta.NestedType1Structure(i))
break;
JCO$MetaData childMeta = (NestedType1Structure)meta.tMetaData(i);
if(childMeta.m_odata == 0 || checkType1(childMeta))
break;
// fall through
case 29: // '\035'
case 30: // '\036'
case 99: // 'c'
return false;
}
return true;
}
private checkType1 constructMetaData(checkType1 client, int version, boolean is_unicode, checkType1 dfies_tab, JCO$Table lines_descr, checkType1 meta, String lfieldname,
int base_offset, int level)
{
int num_rows = dfies_tab.mRows();
if(num_rows == 0 || dfies_tab.w() >= num_rows)
return meta;
int unicode_factor = is_unicode ? -2 : 1;
do
{
if(lfieldname != null && !dfies_tab.tring(43).startsWith(lfieldname))
{
if(level > 1)
dfies_tab.ousRow();
break;
}
String fieldname = dfies_tab.tring(1);
String comptype = dfies_tab.tring(42);
String stype = dfies_tab.tring(13);
int ptype = JCO.getJCOType(stype.length() <= 0 ? ' ' : stype.charAt(0));
if(ptype == -1)
{
String datatype = dfies_tab.tring(12);
if(datatype.equals("STRU"))
ptype = 17;
else
if(datatype.equals("TTYP"))
ptype = 99;
}
if(ptype == 17 || ptype == 99)
{
String rollname = dfies_tab.tring(6);
meta.pe_name = rollname;
if(comptype.equals("S"))
{
etaData meta_new = new nit>(rollname);
meta_new.tTabLength(dfies_tab.nt(9));
meta_new.pe1_data = meta.NestedType1Structure() ? new pe1Data(meta_new) : null;
String lfieldname_new = dfies_tab.tring(43) + "-";
int offset_new = dfies_tab.nt(4);
meta.dInfo(dfies_tab.tring(1), ptype, dfies_tab.nt(8), dfies_tab.nt(9), dfies_tab.nt(4) - base_offset, dfies_tab.nt(11), null, dfies_tab.tring(27), 0, meta_new, null);
dfies_tab.ow();
constructMetaData(client, version, is_unicode, dfies_tab, lines_descr, meta_new, lfieldname_new, offset_new, level + 1);
if(meta.NestedType1Structure() && meta_new.m_odata > 0)
{
meta.ags[meta.m_fields - 1] |= 0x80;
meta_new.pe1_data.constructMetaData();
} else
if(meta_new.m_odata > 0)
{
if(checkType1(meta_new))
{
meta_new.pe1_data = new pe1Data(meta_new);
meta_new.pe1_data.constructMetaData();
meta.ags[meta.m_fields - 1] |= 0x80;
}
} else
{
meta_new.pe1_data = null;
}
continue;
}
if(comptype.equals("L") || comptype.equals("T"))
{
JCO$MetaData meta_new = null;
if(rollname.length() > 0 && super.structure_cache.containsKey(rollname))
{
meta_new = (y)getStructureDefinition(rollname);
if(comptype.equals("L") || dfies_tab.mRows() == 1 && "TTYP".equals(dfies_tab.tring(12)))
{
meta.dInfo(dfies_tab.tring(1), ptype, dfies_tab.nt(8), dfies_tab.nt(9), dfies_tab.nt(4) - base_offset, dfies_tab.nt(11), null, dfies_tab.tring(27), 0, meta_new, null);
} else
{
String curr_rec_name = meta.c_name;
meta.py(meta_new);
meta.c_name = curr_rec_name;
meta.pe_name = meta_new.c_name;
}
continue;
}
if(rollname.length() > 0)
{
JCO$Table dfies_tab_new = null;
String rollname_new = rollname;
int irow = 0;
String dataType = null;
String rollNameTemp = null;
while(irow < lines_descr.mRows() && dfies_tab_new == null)
{
lines_descr.w(irow++);
if(rollname_new.length() > 0 && lines_descr.tring(0).equals(rollname_new))
{
dfies_tab_new = lines_descr.able(2);
dfies_tab_new.Row();
dataType = dfies_tab_new.tring(12);
rollNameTemp = dfies_tab_new.tring(6);
if(dfies_tab_new.mRows() == 1 && dfies_tab_new.tring(42).equals("T") && !rollNameTemp.equals(dfies_tab_new.tring(5)) && ("STRU".equals(dataType) || "TTYP".equals(dataType)))
{
rollname_new = rollNameTemp;
dfies_tab_new = null;
irow = 0;
}
}
}
if(dfies_tab_new != null && (comptype.equals("L") || dfies_tab.mRows() == 1 && "TTYP".equals(dfies_tab.tring(12))))
{
meta_new = new JCO$MetaData(rollname);
meta_new.pe_name = rollname_new;
meta_new.tTabLength(dfies_tab.nt(9));
st imp = new st();
st exp = new st();
imp.appendValue("TABNAME", 0, unicode_factor * 30, rollname);
imp.appendValue("ALL_TYPES", 0, unicode_factor * 1, "X");
JCO$Structure x030l_wa;
if(version < 500)
x030l_wa = JCO.createStructure(x030l_v4);
else
if(!is_unicode)
x030l_wa = JCO.createStructure(x030l_v5);
else
x030l_wa = JCO.createStructure(x030l_v6u);
exp.appendValue("X030L_WA", x030l_wa);
JCO$Function function = new JCO$Function("DDIF_FIELDINFO_GET", imp, exp, null);
execute(client, function);
meta_new.tTabLength(x030l_wa.nt(4));
constructMetaData(client, version, is_unicode, dfies_tab_new, lines_descr, meta_new, null, 0, level + 1);
if(rollname_new != null && rollname_new.length() > 0)
addStructureDefinitionToCache(rollname_new, meta_new);
} else
{
if(dfies_tab_new != null && comptype.equals("T"))
{
st imp = new st();
st exp = new st();
imp.appendValue("TABNAME", 0, unicode_factor * 30, rollname);
imp.appendValue("ALL_TYPES", 0, unicode_factor * 1, "X");
JCO$Structure x030l_wa;
if(version < 500)
x030l_wa = JCO.createStructure(x030l_v4);
else
if(!is_unicode)
x030l_wa = JCO.createStructure(x030l_v5);
else
x030l_wa = JCO.createStructure(x030l_v6u);
exp.appendValue("X030L_WA", x030l_wa);
JCO$Function function = new nit>("DDIF_FIELDINFO_GET", imp, exp, null);
execute(client, function);
meta.tTabLength(x030l_wa.nt(4));
constructMetaData(client, version, is_unicode, dfies_tab_new, lines_descr, meta, null, 0, level + 1);
if(rollname_new != null && rollname_new.length() > 0)
addStructureDefinitionToCache(rollname_new, meta);
} else
{
String msg = "Could not find referenced or embedded table/structure " + rollname + " which was requested by " + meta.tName() + ", comptype=" + comptype;
JCO.fireTrace(1, "[JAV-LAYER] " + msg);
throw new JCO$Exception(108, "JCO_ERROR_INTERNAL", msg);
}
continue;
}
}
meta.dInfo(dfies_tab.tring(1), ptype, dfies_tab.nt(8), dfies_tab.nt(9), dfies_tab.nt(4) - base_offset, dfies_tab.nt(11)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -