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

📄 jco$server.java

📁 SAP这个系统的一个转换器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   JCO.java

package com.sap.mw.jco;

import com.sap.jdsr.writer.DsrFactory;
import com.sap.jdsr.writer.DsrIPassport;
import com.sap.mw.jco.util.Codecs;
import com.sap.mw.jco.util.Dsr;
import com.sap.mw.jco.util.Jarm;
import java.io.*;
import java.util.*;

// Referenced classes of package com.sap.mw.jco:
//            IMiddleware, JCO, IRepository, IServerThread

public static class JCO$Server extends ion
    implements Runnable
{

    protected static synchronized .IServer getServerInterface()
    {
        try
        {
            IMiddleware mw = (IMiddleware)JCO.middleware_class.newInstance();
            return mw.getServerInterface();
        }
        catch(Exception ex)
        {
            JCO.fireTrace(0, "[JAV-LAYER] JCO.Server(): could not get middleware interface");
        }
        return null;
    }

    protected void setThread(IServerThread thread)
    {
        if(!(thread instanceof Thread))
        {
            throw new IllegalArgumentException("thread argument must be subclass of Thread");
        } else
        {
            m_thread = thread;
            return;
        }
    }

    protected IRepository getRepository()
    {
        return m_repository;
    }

    protected void setRepository(IRepository repository)
    {
        m_repository = repository;
    }

    protected .IServer getMiddlewareImplementation()
    {
        return m_middleware;
    }

    public final String[][] getPropertyInfo()
    {
        return m_middleware.getPropertyInfo();
    }

    protected void setProperty(String key, String value)
    {
        if(key != null && key.equals("jco.server.max_startup_delay"))
            if(value != null)
                try
                {
                    m_max_startup_delay = Integer.parseInt(value);
                    if(m_max_startup_delay < 0)
                        m_max_startup_delay = -255;
                }
                catch(Exception ex)
                {
                    throw new on(122, "JCO_ERROR_CONVERSION", "Value of property jco.server.max_startup_delay not an integer.");
                }
            else
                m_max_startup_delay = -255;
        super.setProperty(key, value);
    }

    public void setCallModel(int call_model)
    {
        if(JCO.trace_level > 0)
            JCO.fireTrace(1, "JCO.Server.setCallModell(" + call_model + ")");
        m_call_model = call_model;
        if(!JCO.middleware_layer.equals("com.sap.mw.jco.rfc.MiddlewareRFC"))
            m_dispatch_mode &= -2;
        else
            m_dispatch_mode |= 1;
    }

    public int getCallModel()
    {
        return m_call_model;
    }

    protected void setState(byte state)
    {
        if(super.state == state)
        {
            return;
        } else
        {
            int old_state = super.state;
            int new_state = state;
            super.setState(state);
            JCO.fireServerStateChangeOccurred(this, old_state, new_state);
            return;
        }
    }

    public byte getState()
    {
        return super.getState();
    }

    public Thread getThread()
    {
        return (Thread)m_thread;
    }

    public final tes getAttributes()
    {
        if(super.attributes == null)
        {
            super.state |= 4;
            if(getConnectionHandle() != 0L)
                m_middleware.getAttributes(this);
            super.state &= 0xfb;
        }
        super.last_active_timestamp = System.currentTimeMillis();
        return super.attributes;
    }

    public final String getGWHost()
    {
        return super.properties.getProperty("jco.server.gwhost");
    }

    public final String getGWServ()
    {
        return super.properties.getProperty("jco.server.gwserv");
    }

    public final String getProgID()
    {
        return super.properties.getProperty("jco.server.progid");
    }

    public final boolean getTrace()
    {
        String value = super.properties.getProperty("jco.server.trace");
        return value != null && value.equals("1");
    }

    public final void setTrace(boolean trace)
    {
        setProperty("jco.server.trace", trace ? "1" : "0");
    }

    private final int getMaxStartupDelay()
    {
        if(m_max_startup_delay == -255)
            return JCO.middleware.getMaxStartupDelay();
        if(m_max_startup_delay < 0)
        {
            String value = super.properties.getProperty("jco.server.max_startup_delay");
            if(value != null)
                try
                {
                    m_max_startup_delay = Integer.parseInt(value);
                }
                catch(Exception ex)
                {
                    throw new on(122, "JCO_ERROR_CONVERSION", "Value of property jco.server.max_startup_delay not an integer.");
                }
            if(m_max_startup_delay < 0)
            {
                m_max_startup_delay = -255;
                return JCO.middleware.getMaxStartupDelay();
            }
        }
        return m_max_startup_delay;
    }

    /**
     * @deprecated Method getDsrPassport is deprecated
     */

    public DsrIPassport getDsrPassport()
    {
        if(JCO.trace_level > 4)
            JCO.fireTrace(5, "[JAV-LAYER] getDsrPassport for connection with handle " + getConnectionHandle() + " [enter]");
        try
        {
            if(super.passport_bytes != null)
            {
                DsrIPassport passport = DsrFactory.makeDsrPassport();
                if(!passport.setByNetPassport(super.passport_bytes))
                    throw new on(152, "JCO_ERROR_DSR_PASSPORT_NOT_VALID", "jDSR library cannot parse received passport.");
                if(super.dsr_monitor != null)
                    passport.setPrevCompName("com.sap.mw.jco.JCO.Server");
                DsrIPassport dsripassport = passport;
                return dsripassport;
            }
            on e = new on(151, "JCO_ERROR_DSR_PASSPORT_NOT_RECEIVED", "Dsr Passport wasn't sent from partner side.");
            if(JCO.trace_level > 2)
                JCO.fireTrace(3, "[JAV-LAYER] " + e.toString());
            throw e;
        }
        finally
        {
            if(JCO.trace_level > 4)
                JCO.fireTrace(5, "[JAV-LAYER] getDsrPassport for connection with handle " + getConnectionHandle() + "  [leave]");
        }
    }

    public void disconnect()
    {
        try
        {
            if(JCO.trace_level > 0)
                JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.disconnect() on [" + getConnectionHandle() + "]                     [enter]");
            setState((byte)(super.state & 0xf0 | 1));
            if(!isValid())
                return;
            m_middleware.disconnect(this);
        }
        finally
        {
            if(JCO.trace_level > 0)
                JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.disconnect() on [" + getConnectionHandle() + "]                     [leave]");
        }
    }

    public void abort(String message)
    {
        try
        {
            if(JCO.trace_level > 0)
                JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.abort(\"" + message + "\") on [" + getConnectionHandle() + "]               [enter]");
            if(!isValid())
                return;
            m_middleware.abort(this, message);
        }
        finally
        {
            setState((byte)(super.state & 0xf0 | 1));
            if(JCO.trace_level > 0)
                JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.abort(\"" + message + "\") on [" + getConnectionHandle() + "]               [leave]");
        }
    }

    public void start()
    {
        try
        {
            if(JCO.trace_level > 0)
                JCO.fireTrace(1, "[JAV-LAYER] JCO.Server.start() on [" + getConnectionHandle() + "]                     [enter]");
            checkProperties();
            Thread thread = getThread();
            if(thread == null)
                throw new on(129, "JCO_ERROR_SERVER_STARTUP", "A server that has been stopped cannot be restarted");
            try
            {
                synchronized(m_semaphore)
                {
                    m_startup_delay = 0;
                    if(!thread.isAlive())
                        thread.start();
                    else
                    if((super.state & 0x40) != 0)
                    {
                        super.state = (byte)(super.state & 0xffffffbf);
                        m_semaphore.notifyAll();
                    }
                }
            }
            catch(Exception ex)
            {
                JCO.fireServerExceptionOccurred(this, ex);
            }
        }
        finally
        {
            if(JCO.trace_level > 0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -