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

📄 jco$metadata.java

📁 SAP这个系统的一个转换器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        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 + "&nbsp;&nbsp;[" + Integer.toString(m.getTabLength()) + "&nbsp;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 ? "&nbsp;" : 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'>&nbsp;</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'>&nbsp;</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 + -