All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.eBus.client.TestRequestorContext Maven / Gradle / Ivy

The newest version!
/*
 * ex: set ro:
 * DO NOT EDIT.
 * generated by smc (http://smc.sourceforge.net/)
 * from file : TestRequestor.sm.sm
 */


//
// Copyright 2009 - 2011, 2015 Charles W. Rapp
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//


package net.sf.eBus.client;

import static net.sf.eBus.client.ERequestFeed.RequestState;
import net.sf.eBus.messages.EReplyMessage;
import static net.sf.eBus.messages.EReplyMessage.ReplyStatus;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.invoke.MethodType;
import statemap.FSMContext7;
import statemap.State7;
import statemap.TransitionHandle;

public class TestRequestorContext
    extends FSMContext7
{
//---------------------------------------------------------------
// Member methods.
//

    //-----------------------------------------------------------
    // Constructors.
    //

    public TestRequestorContext(final TestRequestor owner)
    {
        this (owner, sStates[NoReplier_TestStart_STATE_ID]);
    }

    public TestRequestorContext(final TestRequestor owner, final int initStateId)
    {
        this (owner, sStates[initStateId]);    }

    public TestRequestorContext(final TestRequestor owner, final State7 initState)
    {
        super (initState);

        ctxt = owner;
    }

    //
    // end of Constructors.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // FSMContext7 Abstract Method Override.
    //

    @Override
    protected void executeAction(final MethodHandle mh)
    {
        try
        {
            mh.invokeExact(this);
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
    }

    //
    // end of FSMContext7 Abstract Method Override.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Transitions.
    //

    public void cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        mTransition = "cancelOrderReply";
        try
        {
            final TransitionHandle th =
                getState().transition(cancelOrderReply6_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, status, reason, msg);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void cancelReply(final RequestState reqState)
    {
        mTransition = "cancelReply";
        try
        {
            final TransitionHandle th =
                getState().transition(cancelReply9_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, reqState);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void cancelReply(final ReplyStatus status)
    {
        mTransition = "cancelReply";
        try
        {
            final TransitionHandle th =
                getState().transition(cancelReply10_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, status);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        mTransition = "modifyOrderReply";
        try
        {
            final TransitionHandle th =
                getState().transition(modifyOrderReply5_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, status, reason, msg);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        mTransition = "newOrderReply";
        try
        {
            final TransitionHandle th =
                getState().transition(newOrderReply4_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, status, reason, msg);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void noMoreReplies()
    {
        mTransition = "noMoreReplies";
        try
        {
            final TransitionHandle th =
                getState().transition(noMoreReplies3_TRANSITION_ID);

            (th.handle()).invokeExact(this);
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void sendRequest(final Side side, final int qty)
    {
        mTransition = "sendRequest";
        try
        {
            final TransitionHandle th =
                getState().transition(sendRequest2_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, side, qty);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void testError(final Throwable t)
    {
        mTransition = "testError";
        try
        {
            final TransitionHandle th =
                getState().transition(testError8_TRANSITION_ID);

            if (th.isDefault())
            {
                (th.handle()).invokeExact(this);
            }
            else
            {
                (th.handle()).invokeExact(this, t);
            }
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    public void unknownRequest()
    {
        mTransition = "unknownRequest";
        try
        {
            final TransitionHandle th =
                getState().transition(unknownRequest7_TRANSITION_ID);

            (th.handle()).invokeExact(this);
        }
        catch (Throwable tex)
        {
            debugOutput(tex);

            if (RuntimeException.class.isInstance(tex))
            {
                throw ((RuntimeException) tex);
            }
        }
        mTransition = "";
    }

    //
    // end of Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // NoTest.TestDone State Entry/Exit Actions.
    //

    private void NoTest_TestDone__Entry_()
    {
        ctxt.signalDone();
    }

    //
    // end of NoTest.TestDone State Entry/Exit Actions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // NoTest.TestDone State Transitions.
    //

    private void NoTest_TestDone_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of NoTest.TestDone State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // DoNothing.TestStart State Transitions.
    //

    private void DoNothing_TestStart_Default()
    {
        final int stateId = mState.getId();


    }


    //
    // end of DoNothing.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // NoReplier.Default State Transitions.
    //

    private void NoReplier_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void NoReplier_Default_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected new reply");
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void NoReplier_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void NoReplier_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void NoReplier_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void NoReplier_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void NoReplier_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of NoReplier.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // NoReplier.TestStart State Transitions.
    //

    private void NoReplier_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                // No actions.
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("request sent");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of NoReplier.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // ErrorReply.Default State Transitions.
    //

    private void ErrorReply_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void ErrorReply_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[ErrorReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void ErrorReply_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[ErrorReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void ErrorReply_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[ErrorReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void ErrorReply_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void ErrorReply_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of ErrorReply.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // ErrorReply.TestStart State Transitions.
    //

    private void ErrorReply_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
            }
            finally
            {
                setState(sStates[ErrorReply_WaitForReply_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of ErrorReply.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // ErrorReply.WaitForReply State Transitions.
    //

    private void ErrorReply_WaitForReply_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        if (status == EReplyMessage.ReplyStatus.ERROR)
        {
            try
            {
                // No actions.
            }
            finally
            {
            }

        }
        else
        {
            exitState();

            try
            {
                clearState();
                ctxt.failed("unexpected success");
            }
            finally
            {
                setState(sStates[ErrorReply_Failed_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of ErrorReply.WaitForReply State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // ErrorReply.Failed State Transitions.
    //

    private void ErrorReply_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void ErrorReply_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void ErrorReply_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void ErrorReply_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of ErrorReply.Failed State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // RejectReply.Default State Transitions.
    //

    private void RejectReply_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void RejectReply_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[RejectReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void RejectReply_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[RejectReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void RejectReply_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[RejectReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void RejectReply_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void RejectReply_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of RejectReply.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // RejectReply.TestStart State Transitions.
    //

    private void RejectReply_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
            }
            finally
            {
                setState(sStates[RejectReply_WaitForReply_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of RejectReply.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // RejectReply.WaitForReply State Transitions.
    //

    private void RejectReply_WaitForReply_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        if (status == ReplyStatus.ERROR)
        {
            try
            {
                // No actions.
            }
            finally
            {
            }

        }
        else
        {
            exitState();

            try
            {
                clearState();
                ctxt.failed("unexpected success");
            }
            finally
            {
                setState(sStates[RejectReply_Failed_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of RejectReply.WaitForReply State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // RejectReply.Failed State Transitions.
    //

    private void RejectReply_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void RejectReply_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void RejectReply_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void RejectReply_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of RejectReply.Failed State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OKReply.Default State Transitions.
    //

    private void OKReply_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void OKReply_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[OKReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OKReply_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel order reply");
        }
        finally
        {
            setState(sStates[OKReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OKReply_Default_cancelReply(final RequestState reqState)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[OKReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OKReply_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[OKReply_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OKReply_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void OKReply_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of OKReply.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OKReply.TestStart State Transitions.
    //

    private void OKReply_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
            }
            finally
            {
                setState(sStates[OKReply_WaitForReply_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of OKReply.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OKReply.WaitForReply State Transitions.
    //

    private void OKReply_WaitForReply_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        if (status == ReplyStatus.ERROR)
        {
            exitState();

            try
            {
                clearState();
                ctxt.failed(reason);
            }
            finally
            {
                setState(sStates[OKReply_Failed_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of OKReply.WaitForReply State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OKReply.Failed State Transitions.
    //

    private void OKReply_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OKReply_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OKReply_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OKReply_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of OKReply.Failed State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Cancel.Default State Transitions.
    //

    private void Cancel_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("request not canceled");
        }
        finally
        {
            setState(sStates[Cancel_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[Cancel_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel order reply");
        }
        finally
        {
            setState(sStates[Cancel_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_cancelReply(final RequestState reqState)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[Cancel_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[Cancel_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void Cancel_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of Cancel.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Cancel.TestStart State Transitions.
    //

    private void Cancel_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else if (ctxt.unrequest() == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("unrequest failed");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of Cancel.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Cancel.Failed State Transitions.
    //

    private void Cancel_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void Cancel_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void Cancel_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void Cancel_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of Cancel.Failed State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelAccept.Default State Transitions.
    //

    private void OptionalCancelAccept_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("request not canceled");
        }
        finally
        {
            setState(sStates[OptionalCancelAccept_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[OptionalCancelAccept_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel order reply");
        }
        finally
        {
            setState(sStates[OptionalCancelAccept_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_cancelReply(final RequestState reqState)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[OptionalCancelAccept_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[OptionalCancelAccept_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelAccept_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of OptionalCancelAccept.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelAccept.TestStart State Transitions.
    //

    private void OptionalCancelAccept_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else if (ctxt.cancelRequest() == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("cancel failed");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
            }
            finally
            {
                setState(sStates[OptionalCancelAccept_WaitForCancelAccept_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of OptionalCancelAccept.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelAccept.WaitForCancelAccept State Transitions.
    //

    private void OptionalCancelAccept_WaitForCancelAccept_cancelReply(final ReplyStatus status)
    {
        final int stateId = mState.getId();

        if (status == ReplyStatus.CANCELED)
        {
            exitState();

            try
            {
                // No actions.
            }
            finally
            {
                setState(sStates[OptionalCancelAccept_Success_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("cancel rejected");
            }
            finally
            {
                setState(sStates[OptionalCancelAccept_Failed_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of OptionalCancelAccept.WaitForCancelAccept State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelAccept.Success State Transitions.
    //

    private void OptionalCancelAccept_Success_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of OptionalCancelAccept.Success State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelAccept.Failed State Transitions.
    //

    private void OptionalCancelAccept_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OptionalCancelAccept_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OptionalCancelAccept_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OptionalCancelAccept_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of OptionalCancelAccept.Failed State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelReject.Default State Transitions.
    //

    private void OptionalCancelReject_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("request not canceled");
        }
        finally
        {
            setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel order reply");
        }
        finally
        {
            setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_cancelReply(final RequestState reqState)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void OptionalCancelReject_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of OptionalCancelReject.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelReject.TestStart State Transitions.
    //

    private void OptionalCancelReject_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else if (ctxt.cancelRequest() == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("cancel failed");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
            }
            finally
            {
                setState(sStates[OptionalCancelReject_WaitForCancelReject_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of OptionalCancelReject.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelReject.WaitForCancelReject State Transitions.
    //

    private void OptionalCancelReject_WaitForCancelReject_cancelReply(final ReplyStatus status)
    {
        final int stateId = mState.getId();

        if (status == ReplyStatus.CANCEL_REJECT)
        {
            exitState();

            try
            {
                // No actions.
            }
            finally
            {
                setState(sStates[OptionalCancelReject_Success_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("cancel rejected");
            }
            finally
            {
                setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of OptionalCancelReject.WaitForCancelReject State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelReject.Success State Transitions.
    //

    private void OptionalCancelReject_Success_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        if (status == ReplyStatus.ERROR)
        {
            exitState();

            try
            {
                clearState();
                ctxt.failed(reason);
            }
            finally
            {
                setState(sStates[OptionalCancelReject_Failed_STATE_ID]);
            }

            enterState();
        }
    }


    private void OptionalCancelReject_Success_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of OptionalCancelReject.Success State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // OptionalCancelReject.Failed State Transitions.
    //

    private void OptionalCancelReject_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OptionalCancelReject_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OptionalCancelReject_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void OptionalCancelReject_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of OptionalCancelReject.Failed State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Close.Default State Transitions.
    //

    private void Close_Default_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("request not canceled");
        }
        finally
        {
            setState(sStates[Close_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected modify reply");
        }
        finally
        {
            setState(sStates[Close_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel order reply");
        }
        finally
        {
            setState(sStates[Close_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_cancelReply(final RequestState reqState)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[Close_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_unknownRequest()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("reply to unknown request");
        }
        finally
        {
            setState(sStates[Close_Failed_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_testError(final Throwable t)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(t);
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    private void Close_Default_Default()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
            ctxt.storeException(new IllegalArgumentException(
                    "invalid transition"));
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of Close.Default State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Close.TestStart State Transitions.
    //

    private void Close_TestStart_sendRequest(final Side side, final int qty)
    {
        final int stateId = mState.getId();

        if (ctxt.marketOrder(side, qty) == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("no repliers");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else if (ctxt.closeRequest() == false)
        {
            exitState();

            try
            {
                clearState();
                ctxt.clearRequests();
                ctxt.failed("unrequest failed");
            }
            finally
            {
                setState(sStates[NoTest_TestDone_STATE_ID]);
            }

            enterState();
        }
        else
        {
            exitState();

            try
            {
            }
            finally
            {
                setState(sStates[Close_WaitForCancel_STATE_ID]);
            }

            enterState();
        }
    }


    //
    // end of Close.TestStart State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Close.WaitForCancel State Transitions.
    //

    private void Close_WaitForCancel_cancelReply(final RequestState reqState)
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.failed("unexpected cancel reply");
        }
        finally
        {
            setState(sStates[Close_Success_STATE_ID]);
        }

        enterState();

    }


    //
    // end of Close.WaitForCancel State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Close.Success State Transitions.
    //

    private void Close_Success_noMoreReplies()
    {
        final int stateId = mState.getId();

        exitState();

        try
        {
            clearState();
            ctxt.clearRequests();
        }
        finally
        {
            setState(sStates[NoTest_TestDone_STATE_ID]);
        }

        enterState();

    }


    //
    // end of Close.Success State Transitions.
    //-----------------------------------------------------------

    //-----------------------------------------------------------
    // Close.Failed State Transitions.
    //

    private void Close_Failed_cancelOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void Close_Failed_modifyOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void Close_Failed_newOrderReply(final ReplyStatus status, final String reason, final EReplyMessage msg)
    {
        final int stateId = mState.getId();


    }


    private void Close_Failed_unknownRequest()
    {
        final int stateId = mState.getId();


    }


    //
    // end of Close.Failed State Transitions.
    //-----------------------------------------------------------

//---------------------------------------------------------------
// Member data.
//

    transient private TestRequestor ctxt;

    //-----------------------------------------------------------
    // Constants.
    //

    private static final long serialVersionUID = 1L;

    public static final int NoTest_TestDone_STATE_ID = 0;

    public static final int DoNothing_TestStart_STATE_ID = 1;

    public static final int NoReplier_TestStart_STATE_ID = 2;

    public static final int ErrorReply_TestStart_STATE_ID = 3;
    public static final int ErrorReply_WaitForReply_STATE_ID = 4;
    public static final int ErrorReply_Failed_STATE_ID = 5;

    public static final int RejectReply_TestStart_STATE_ID = 6;
    public static final int RejectReply_WaitForReply_STATE_ID = 7;
    public static final int RejectReply_Failed_STATE_ID = 8;

    public static final int OKReply_TestStart_STATE_ID = 9;
    public static final int OKReply_WaitForReply_STATE_ID = 10;
    public static final int OKReply_Failed_STATE_ID = 11;

    public static final int Cancel_TestStart_STATE_ID = 12;
    public static final int Cancel_Failed_STATE_ID = 13;

    public static final int OptionalCancelAccept_TestStart_STATE_ID = 14;
    public static final int OptionalCancelAccept_WaitForCancelAccept_STATE_ID = 15;
    public static final int OptionalCancelAccept_Success_STATE_ID = 16;
    public static final int OptionalCancelAccept_Failed_STATE_ID = 17;

    public static final int OptionalCancelReject_TestStart_STATE_ID = 18;
    public static final int OptionalCancelReject_WaitForCancelReject_STATE_ID = 19;
    public static final int OptionalCancelReject_Success_STATE_ID = 20;
    public static final int OptionalCancelReject_Failed_STATE_ID = 21;

    public static final int Close_TestStart_STATE_ID = 22;
    public static final int Close_WaitForCancel_STATE_ID = 23;
    public static final int Close_Success_STATE_ID = 24;
    public static final int Close_Failed_STATE_ID = 25;

    private static final int STATE_COUNT = 26;

    private static final int cancelOrderReply6_TRANSITION_ID = 1;
    private static final int cancelReply9_TRANSITION_ID = 2;
    private static final int cancelReply10_TRANSITION_ID = 3;
    private static final int modifyOrderReply5_TRANSITION_ID = 4;
    private static final int newOrderReply4_TRANSITION_ID = 5;
    private static final int noMoreReplies3_TRANSITION_ID = 6;
    private static final int sendRequest2_TRANSITION_ID = 7;
    private static final int testError8_TRANSITION_ID = 8;
    private static final int unknownRequest7_TRANSITION_ID = 9;

    private static final int TRANSITION_COUNT = 10;

    private static final MethodType[] TRANSITION_TYPES =
    {
        NO_ARGS_TYPE,
        MethodType.methodType(void.class, ReplyStatus.class, String.class, EReplyMessage.class),
        MethodType.methodType(void.class, RequestState.class),
        MethodType.methodType(void.class, ReplyStatus.class),
        MethodType.methodType(void.class, ReplyStatus.class, String.class, EReplyMessage.class),
        MethodType.methodType(void.class, ReplyStatus.class, String.class, EReplyMessage.class),
        NO_ARGS_TYPE,
        MethodType.methodType(void.class, Side.class, int.class),
        MethodType.methodType(void.class, Throwable.class),
        NO_ARGS_TYPE
    };

    private static final String[] MAP_NAMES =
    {
        "NoTest",
        "DoNothing",
        "NoReplier",
        "ErrorReply",
        "RejectReply",
        "OKReply",
        "Cancel",
        "OptionalCancelAccept",
        "OptionalCancelReject",
        "Close"
    };

    private static final String[][] STATE_NAMES =
    {
        new String[]
        {
            "TestDone"
        },

        new String[]
        {
            "TestStart"
        },

        new String[]
        {
            "TestStart"
        },

        new String[]
        {
            "TestStart",
            "WaitForReply",
            "Failed"
        },

        new String[]
        {
            "TestStart",
            "WaitForReply",
            "Failed"
        },

        new String[]
        {
            "TestStart",
            "WaitForReply",
            "Failed"
        },

        new String[]
        {
            "TestStart",
            "Failed"
        },

        new String[]
        {
            "TestStart",
            "WaitForCancelAccept",
            "Success",
            "Failed"
        },

        new String[]
        {
            "TestStart",
            "WaitForCancelReject",
            "Success",
            "Failed"
        },

        new String[]
        {
            "TestStart",
            "WaitForCancel",
            "Success",
            "Failed"
        }
    };

    private static String[][] STATE_TRANSITIONS =
    {
        new String[]
        {
            "Default"
        },

        new String[]
        {
            "Default"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "newOrderReply"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "newOrderReply"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "newOrderReply"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "cancelReply"
        },

        new String[]
        {
            "noMoreReplies"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "cancelReply"
        },

        new String[]
        {
            "newOrderReply",
            "noMoreReplies"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        },

        new String[]
        {
            "sendRequest"
        },

        new String[]
        {
            "cancelReply"
        },

        new String[]
        {
            "noMoreReplies"
        },

        new String[]
        {
            "cancelOrderReply",
            "modifyOrderReply",
            "newOrderReply",
            "unknownRequest"
        }
    };

    private static final String[] TRANSITION_NAMES =
    {
        "Default",
        "cancelOrderReply",
        "cancelReply",
        "cancelReply",
        "modifyOrderReply",
        "newOrderReply",
        "noMoreReplies",
        "sendRequest",
        "testError",
        "unknownRequest"
    };

    private static final State7[] sStates = new State7[STATE_COUNT];

    static
    {
        final Lookup lookup = MethodHandles.lookup();
        final Class clazz = TestRequestorContext.class;
        final int mapSize = MAP_NAMES.length;
        int stateSize;
        int mapIndex;
        int stateIndex;
        int transIndex;
        int stateId = 0;
        String mapName;
        String stateName;
        String transName;
        String methodName;
        MethodType transType;
        MethodHandle entryHandle;
        MethodHandle exitHandle;
        TransitionHandle[] transitions;

        for (mapIndex = 0; mapIndex < mapSize; ++mapIndex)
        {
            mapName = MAP_NAMES[mapIndex];
            stateSize = STATE_NAMES[mapIndex].length;

            for (stateIndex = 0; stateIndex < stateSize; ++stateIndex, ++stateId)
            {
                stateName = STATE_NAMES[mapIndex][stateIndex];
                transitions = new TransitionHandle[TRANSITION_COUNT];

                methodName = String.format(ENTRY_NAME, mapName, stateName);
                entryHandle = lookupMethod(lookup, clazz, methodName, NO_ARGS_TYPE);
                methodName = String.format(EXIT_NAME, mapName, stateName);
                exitHandle = lookupMethod(lookup, clazz, methodName, NO_ARGS_TYPE);

                for (transIndex = 1; transIndex < TRANSITION_COUNT; ++transIndex)
                {
                    transName = TRANSITION_NAMES[transIndex];
                    transType = TRANSITION_TYPES[transIndex];
                    transitions[transIndex] =
                        lookupTransition(lookup, clazz, mapName, stateName, transName, transType);
                }

                sStates[stateId] =
                    new State7(
                        String.format(STATE_NAME_FORMAT, mapName, stateName),
                        stateId,
                        entryHandle,
                        exitHandle,
                        transitions,
                        STATE_TRANSITIONS[stateId]);
            }
        }
    }
}

/*
 * Local variables:
 *  buffer-read-only: t
 * End:
 */




© 2015 - 2025 Weber Informatics LLC | Privacy Policy