Skip to content

Instantly share code, notes, and snippets.

@mokemokechicken
Created September 10, 2014 06:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mokemokechicken/9eb89e3c69d7e97800ea to your computer and use it in GitHub Desktop.
Save mokemokechicken/9eb89e3c69d7e97800ea to your computer and use it in GitHub Desktop.
OnOffFSM
/* Generator: http://goodparts.d.yumemi.jp/generator#StateMachineGenerator--1231df2dc497cc9b12e1241dcd2395c03a659468
* ex: set ro:
* DO NOT EDIT.
* generated by smc (http://smc.sourceforge.net/)
* from file : OnOffFSM.sm
*/
package com.example.global.fsm.gen;
import com.example.global.fsm.OnOffAction;
public class OnOffFSM
extends statemap.FSMContext
implements java.io.Serializable
{
//---------------------------------------------------------------
// Member methods.
//
public OnOffFSM(OnOffAction owner)
{
this (owner, OnOffStateMap.OFF);
}
public OnOffFSM(OnOffAction owner, OnOffActionState initState)
{
super (initState);
_owner = owner;
}
@Override
public void enterStartState()
{
getState().entry(this);
return;
}
public void power()
{
_transition = "power";
getState().power(this);
_transition = "";
return;
}
public OnOffActionState valueOf(int stateId)
throws ArrayIndexOutOfBoundsException
{
return (_States[stateId]);
}
public OnOffActionState getState()
throws statemap.StateUndefinedException
{
if (_state == null)
{
throw(
new statemap.StateUndefinedException());
}
return ((OnOffActionState) _state);
}
protected OnOffAction getOwner()
{
return (_owner);
}
public void setOwner(OnOffAction owner)
{
if (owner == null)
{
throw (
new NullPointerException(
"null owner"));
}
else
{
_owner = owner;
}
return;
}
private void writeObject(java.io.ObjectOutputStream ostream)
throws java.io.IOException
{
int size =
(_stateStack == null ? 0 : _stateStack.size());
int i;
ostream.writeInt(size);
for (i = 0; i < size; ++i)
{
ostream.writeInt(
((OnOffActionState) _stateStack.get(i)).getId());
}
ostream.writeInt(_state.getId());
return;
}
private void readObject(java.io.ObjectInputStream istream)
throws java.io.IOException
{
int size;
size = istream.readInt();
if (size == 0)
{
_stateStack = null;
}
else
{
int i;
_stateStack =
new java.util.Stack<statemap.State>();
for (i = 0; i < size; ++i)
{
_stateStack.add(i, _States[istream.readInt()]);
}
}
_state = _States[istream.readInt()];
return;
}
//---------------------------------------------------------------
// Member data.
//
transient private OnOffAction _owner;
transient private static OnOffActionState[] _States =
{
OnOffStateMap.OFF,
OnOffStateMap.ON
};
//-----------------------------------------------------------
// Constants.
//
private static final long serialVersionUID = 1L;
//---------------------------------------------------------------
// Inner classes.
//
public static abstract class OnOffActionState
extends statemap.State
{
//-----------------------------------------------------------
// Member methods.
//
protected OnOffActionState(String name, int id)
{
super (name, id);
}
protected void entry(OnOffFSM context) {}
protected void exit(OnOffFSM context) {}
protected void power(OnOffFSM context)
{
Default(context);
}
protected void Default(OnOffFSM context)
{
throw (
new statemap.TransitionUndefinedException(
"State: " +
context.getState().getName() +
", Transition: " +
context.getTransition()));
}
//-----------------------------------------------------------
// Member data.
//
}
/* package */ static abstract class OnOffStateMap
{
//-----------------------------------------------------------
// Member methods.
//
//-----------------------------------------------------------
// Member data.
//
//-------------------------------------------------------
// Constants.
//
public static final OnOffStateMap_OFF OFF =
new OnOffStateMap_OFF("OnOffStateMap.OFF", 4);
public static final OnOffStateMap_ON ON =
new OnOffStateMap_ON("OnOffStateMap.ON", 5);
}
protected static class OnOffStateMap_Default
extends OnOffActionState
{
//-----------------------------------------------------------
// Member methods.
//
protected OnOffStateMap_Default(String name, int id)
{
super (name, id);
}
//-----------------------------------------------------------
// Member data.
//
//---------------------------------------------------
// Constants.
//
private static final long serialVersionUID = 1L;
}
private static final class OnOffStateMap_OFF
extends OnOffStateMap_Default
{
//-------------------------------------------------------
// Member methods.
//
private OnOffStateMap_OFF(String name, int id)
{
super (name, id);
}
@Override
protected void entry(OnOffFSM context)
{
OnOffAction ctxt = context.getOwner();
ctxt.offAction();
return;
}
@Override
protected void power(OnOffFSM context)
{
(context.getState()).exit(context);
context.setState(OnOffStateMap.ON);
(context.getState()).entry(context);
return;
}
//-------------------------------------------------------
// Member data.
//
//---------------------------------------------------
// Constants.
//
private static final long serialVersionUID = 1L;
}
private static final class OnOffStateMap_ON
extends OnOffStateMap_Default
{
//-------------------------------------------------------
// Member methods.
//
private OnOffStateMap_ON(String name, int id)
{
super (name, id);
}
@Override
protected void entry(OnOffFSM context)
{
OnOffAction ctxt = context.getOwner();
ctxt.onAction();
return;
}
@Override
protected void power(OnOffFSM context)
{
(context.getState()).exit(context);
context.setState(OnOffStateMap.OFF);
(context.getState()).entry(context);
return;
}
//-------------------------------------------------------
// Member data.
//
//---------------------------------------------------
// Constants.
//
private static final long serialVersionUID = 1L;
}
}
/*
* Local variables:
* buffer-read-only: t
* End:
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment