📄 fsmusertoolall.java
字号:
package org.abeesoft.fsmgenerator.test;
import java.util.HashMap;
import java.util.List;
import java.util.LinkedList;
import org.abeesoft.fsmgenerator.api.java.IFSM;
public final class FSMUserToolAll implements IFSM
{
private static final HashMap< String, Integer > mapStateNameId = new HashMap< String, Integer >();
private static final HashMap< String, Integer > mapEventNameId = new HashMap< String, Integer >();
private static final String[] mapStateIdName = new String[5];
private static final String[] mapEventIdName = new String[4];
private static final int[][] mapTransition = new int[5][4];
private static final String startState = "User.1";
static
{
mapStateNameId.put( "User.1" ,1 );
mapStateIdName[1] = "User.1";
mapStateNameId.put( "Group.1" ,2 );
mapStateIdName[2] = "Group.1";
mapStateNameId.put( "Role.1" ,3 );
mapStateIdName[3] = "Role.1";
mapStateNameId.put( "Tool.1" ,4 );
mapStateIdName[4] = "Tool.1";
mapEventNameId.put( "belongsTo.forward" ,1 );
mapEventIdName[1] = "belongsTo.forward";
mapEventNameId.put( "hasParent.forward" ,2 );
mapEventIdName[2] = "hasParent.forward";
mapEventNameId.put( "assignedTo.backward" ,3 );
mapEventIdName[3] = "assignedTo.backward";
mapTransition[1][1] = 2;
mapTransition[2][2] = 2;
mapTransition[2][3] = 3;
mapTransition[3][1] = 4;
}
private String currentState = null;
public FSMUserToolAll() throws Exception
{
restart();
}
public void restart() throws Exception
{
currentState = startState;
}
public void process( String eventName ) throws Exception
{
currentState = mapStateIdName[mapTransition[mapStateNameId.get(currentState)][mapEventNameId.get(eventName)]];
}
public String getCurrentState()
{
return currentState;
}
public void setCurrentState( String stateName )
{
currentState = stateName;
}
public List<String> getCurrentEventOut()
{
List<String> eventOut = new LinkedList<String>();
int index = mapStateNameId.get(currentState);
for( int i = 1; i < mapTransition[index].length; i++ )
{
if( mapTransition[index][i] != 0 )
eventOut.add(mapEventIdName[mapTransition[index][i]]);
}
return eventOut;
}
public String getCurrentTransitionOut( String eventName )
{
return mapStateIdName[mapTransition[mapStateNameId.get(currentState)][mapEventNameId.get(eventName)]];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -