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

📄 jco.java

📁 SAP这个系统的一个转换器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            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 + -