📄 jco$metadata.java
字号:
return type[index] == 98;
}
public boolean isException(String field_name)
{
return type[indexOf(field_name)] == 98;
}
public int getTabLength()
{
return tab_length;
}
public boolean isNestedType1Structure()
{
return type1_data != null;
}
public boolean isActive(int index)
{
return (flags[index] & 0x10) == 0;
}
public boolean isActive(String field_name)
{
return (flags[indexOf(field_name)] & 0x10) == 0;
}
public boolean isInitialized(int index)
{
return (flags[index] & 8) == 0;
}
public boolean isInitialized(String field_name)
{
return (flags[indexOf(field_name)] & 8) == 0;
}
public void setFlags(int index, int flags)
{
this.flags[index] = (byte)flags;
}
public void setTabLength(int tab_length)
{
this.tab_length = tab_length;
}
public void setNestedType1Structure(boolean isType1)
{
if(isType1)
{
type1_data = new Type1Data();
type1_data.constructMetaData();
} else
{
type1_data = null;
}
}
public String toString()
{
return toString(0);
}
protected String toString(int level)
{
int n = getFieldCount();
StringBuffer s = new StringBuffer();
for(int i = 0; i < n; i++)
{
for(int k = 0; k < level * 10; k++)
s.append(' ');
s.append(name[i]);
int l = name[i].length();
for(int k = l; k < 32; k++)
s.append(' ');
s.append(',');
if(tab_meta[i] != null && (tab_meta[i] instanceof String))
{
s.append((String)tab_meta[i]);
l = ((String)tab_meta[i]).length();
for(int k = l; k < 32; k++)
s.append(' ');
} else
{
for(int k = 0; k < 32; k++)
s.append(' ');
}
s.append(',');
s.append(JCO.getJCOTypeChar(type[i]));
s.append(',');
s.append(blength[i]);
s.append(',');
s.append(boffset[i]);
s.append(',');
s.append(decimals[i]);
if(defaults != null)
{
s.append(',');
s.append(getDefault(i) == null ? " " : getDefault(i));
}
if(description != null)
{
s.append(',');
s.append(getDescription(i) == null ? " " : getDescription(i));
}
if(isImport(i))
{
s.append(',');
s.append("IMPORT");
}
if(isExport(i))
{
s.append(',');
s.append("EXPORT");
}
if(isOptional(i))
{
s.append(',');
s.append("OPTIONAL");
}
if(!isActive(i))
{
s.append(',');
s.append("INACTIVE");
}
if(tab_meta[i] != null && (tab_meta[i] instanceof JCO$MetaData))
{
s.append(JCO.CRLF);
s.append(((JCO$MetaData)tab_meta[i]).toString(level + 1));
} else
if(tab_meta[i] != null && (tab_meta[i] instanceof String))
{
s.append(',');
s.append((String)tab_meta[i]);
s.append(JCO.CRLF);
} else
{
s.append(JCO.CRLF);
}
}
return s.toString();
}
public void writeHTML(String html_filename)
{
try
{
writeHTML(((Writer) (new FileWriter(html_filename))));
}
catch(IOException ex)
{
throw new nException("Cannot write meta data for " + getName() + " to HTML file " + html_filename);
}
}
public void writeHTML(Writer writer)
throws IOException
{
PrintWriter os = new PrintWriter(writer);
os.println("<html><head></head>");
os.println("<body bgcolor='" + JCO.getProperty("jco.html.background") + "'>");
printHTML(os, this, 0);
os.println("</body></html>");
os.close();
}
protected void printHTML(PrintWriter os, IMetaData m, int level)
{
printHTML(os, m, level, PRINT_HEADER_ALL);
}
protected void printHTML(PrintWriter os, IMetaData m, int level, int print_flags)
{
String th = JCO.getProperty("jco.html.table_header_background2");
String hc = JCO.getProperty("jco.html.table_header_background3");
String bdr = JCO.getProperty("jco.html.table_border");
String fface = JCO.getProperty("jco.html.font_face");
String fsize = JCO.getProperty("jco.html.font_size");
int num_fields = m.getFieldCount();
String text = m.getName();
if(m.getTabLength() > 0)
text = text + " [" + Integer.toString(m.getTabLength()) + " bytes]";
os.println("<font face='" + fface + "' size='" + fsize + "'>");
os.println("<table border='" + bdr + "' bgcolor='" + th + "'" + (level <= 0 ? "" : " width='100%'") + ">");
os.println("<tr align='LEFT'>");
os.print("<th colspan='" + (num_fields + 1) + "'>" + (text == null ? "" : text) + "</th>" + JCO.CRLF);
os.println(JCO.CRLF + "</tr>");
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Index:</th>");
int i;
for(i = 0; i < num_fields; i++)
os.print("<th>" + (i + 1) + "</th>");
os.println(JCO.CRLF + "</tr>");
if((print_flags & PRINT_HEADER_NAME) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Name:</th>");
for(i = 0; i < num_fields; i++)
os.print("<th>" + m.getName(i) + "</th>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_TYPE) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Type:</th>");
for(i = 0; i < num_fields; i++)
os.print("<td>" + JCO.getJCOTypeString(m.getType(i)) + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_LENGTH) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Size:</th>");
for(i = 0; i < num_fields; i++)
os.print("<td>" + m.getLength(i) + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_OFFSET) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Offset:</th>");
for(i = 0; i < num_fields; i++)
os.print("<td>" + m.getOffset(i) + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_DECIMALS) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Decimals:</th>");
for(i = 0; i < num_fields; i++)
os.print("<td>" + m.getDecimals(i) + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_DEFAULT) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Default:</th>");
for(i = 0; i < num_fields; i++)
os.print("<td>" + (m.getDefault(i) == null ? " " : m.getDefault(i)) + "</td>");
os.println(JCO.CRLF + "</tr>");
}
for(i = 0; i < num_fields; i++)
if(m.getMetaData(i) != null)
break;
if(i < num_fields)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'> </th>");
for(i = 0; i < num_fields; i++)
if(m.getMetaData(i) != null)
{
os.println("<td align='center' valign='top'>");
printHTML(os, m.getMetaData(i), level + 1, print_flags);
os.println("</td>");
} else
{
os.println("<td align='left'> </td>");
}
os.println(JCO.CRLF + "</tr>");
}
if((m instanceof JCO$MetaData) && ((JCO$MetaData)m).type1_data != null)
{
os.println("</table>");
Type1Data type1Data = ((JCO$MetaData)m).type1_data;
os.println("<table border='" + bdr + "' bgcolor='" + th + "'" + (level <= 0 ? "" : " width='100%'") + ">");
os.println("<tr align='LEFT'>");
os.print("<th colspan='" + (type1Data.num_fields + 1) + "'>" + (text == null ? "" : text) + "</th>" + JCO.CRLF);
os.println(JCO.CRLF + "</tr>");
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Index:</th>");
for(i = 0; i < type1Data.num_fields; i++)
os.print("<th>" + (i + 1) + "</th>");
os.println(JCO.CRLF + "</tr>");
if((print_flags & PRINT_HEADER_NAME) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Name:</th>");
for(i = 0; i < type1Data.num_fields; i++)
os.print("<th>" + type1Data.name[i] + "</th>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_TYPE) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Type:</th>");
for(i = 0; i < type1Data.num_fields; i++)
os.print("<td>" + JCO.getJCOTypeString(type1Data.type[i]) + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_LENGTH) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Size:</th>");
for(i = 0; i < type1Data.num_fields; i++)
os.print("<td>" + type1Data.length[i] + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_OFFSET) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Offset:</th>");
for(i = 0; i < type1Data.num_fields; i++)
os.print("<td>" + type1Data.offset[i] + "</td>");
os.println(JCO.CRLF + "</tr>");
}
if((print_flags & PRINT_HEADER_DECIMALS) != 0)
{
os.println("<tr align='CENTER' bgcolor='" + hc + "'><th align='left'>Decimals:</th>");
for(i = 0; i < type1Data.num_fields; i++)
os.print("<td>" + type1Data.decimals[i] + "</td>");
os.println(JCO.CRLF + "</tr>");
}
}
os.println("</table></font>");
}
private static final long serialVersionUID = 0x199d2b6fe1L;
protected String name[];
protected Object tab_meta[];
protected int offset[];
protected int length[];
protected int boffset[];
protected int blength[];
protected byte type[];
protected byte decimals[];
protected byte oindex[];
protected byte flags[];
protected String defaults[];
protected String description[];
protected IExtendedFieldMetaData extended_field_meta_data[];
protected int num_fields;
protected int num_odata;
protected int tab_length;
protected long type_handle;
protected String rec_name;
protected String type_name;
protected Type1Data type1_data;
protected Hashtable hash_of_indices;
protected static int PRINT_HEADER_NAME = 1;
protected static int PRINT_HEADER_TYPE = 2;
protected static int PRINT_HEADER_LENGTH = 4;
protected static int PRINT_HEADER_OFFSET = 8;
protected static int PRINT_HEADER_DECIMALS = 16;
protected static int PRINT_HEADER_DEFAULT = 32;
protected static int PRINT_HEADER_INTERNAL_LENGTH = 64;
protected static int PRINT_HEADER_INTERNAL_OFFSET = 128;
protected static int PRINT_HEADER_ALL = 63;
protected long last_active_timestamp;
protected byte unicode_type;
protected JCO$MetaData()
{
this(null, 0);
}
public JCO$MetaData(String rec_name)
{
this(rec_name, 0);
}
public JCO$MetaData(String rec_name, int capacity)
{
name = new String[0];
tab_meta = new Object[0];
offset = new int[0];
length = new int[0];
boffset = new int[0];
blength = new int[0];
type = new byte[0];
decimals = new byte[0];
oindex = new byte[0];
flags = new byte[0];
defaults = null;
description = null;
extended_field_meta_data = null;
num_fields = 0;
num_odata = 0;
tab_length = 0;
type_handle = 0L;
this.rec_name = null;
type_name = null;
type1_data = null;
hash_of_indices = null;
last_active_timestamp = 0L;
unicode_type = 4;
ensureCapacity(capacity);
this.rec_name = rec_name;
}
public JCO$MetaData(IMetaData obj)
{
name = new String[0];
tab_meta = new Object[0];
offset = new int[0];
length = new int[0];
boffset = new int[0];
blength = new int[0];
type = new byte[0];
decimals = new byte[0];
oindex = new byte[0];
flags = new byte[0];
defaults = null;
description = null;
extended_field_meta_data = null;
num_fields = 0;
num_odata = 0;
tab_length = 0;
type_handle = 0L;
rec_name = null;
type_name = null;
type1_data = null;
hash_of_indices = null;
last_active_timestamp = 0L;
unicode_type = 4;
if(obj != null)
{
ensureCapacity(obj.getFieldCount());
copy(obj);
for(int i = 0; i < num_fields; i++)
if(tab_meta[i] != null)
if(tab_meta[i] instanceof String)
tab_meta[i] = tab_meta[i];
else
if(tab_meta[i] instanceof JCO$MetaData)
tab_meta[i] = ((JCO$MetaData)tab_meta[i]).clone();
else
if(tab_meta[i] instanceof IMetaData)
tab_meta[i] = ((IMetaData)tab_meta[i]).clone();
else
tab_meta[i] = null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -