📄 validator.java
字号:
package org.abeesoft.fsmgenerator.validator;
import java.util.ArrayList;
import org.abeesoft.fsmgenerator.configuration.Configuration;
import org.abeesoft.fsmgenerator.database.Database;
import org.abeesoft.fsmgenerator.exception.Exception;
import org.abeesoft.fsmgenerator.specification.Event;
import org.abeesoft.fsmgenerator.specification.Specification;
import org.abeesoft.fsmgenerator.specification.State;
import org.abeesoft.fsmgenerator.specification.Transition;
public class Validator implements IValidator
{
private Configuration configuration;
private Specification specification;
public Validator( Configuration configuration, Specification specification )
{
super();
this.configuration = configuration;
this.specification = specification;
}
public void validate() throws Exception
{
if( specification == null )
throw new Exception();
if( specification.getMachine() == null )
throw new Exception();
if( specification.getMachine().getName() == null )
throw new Exception();
if( specification.getMachine().getStates() == null )
throw new Exception();
int counter;
counter = 1;
for( State state : specification.getMachine().getStates().getState() )
{
if( Database.mapStateNameId.containsKey( state.getName() ) )
throw new Exception();
state.setId( String.valueOf( counter ) );
Database.mapStateNameId.put( state.getName(), counter );
Database.mapStateTransitionOut.put( state.getName(), new ArrayList<String>() );
counter++;
}
counter = 1;
for( Event event : specification.getMachine().getEvents().getEvent() )
{
if( Database.mapEventNameId.containsKey( event.getName() ) )
throw new Exception();
event.setId( String.valueOf( counter ) );
Database.mapEventNameId.put( event.getName(), counter );
counter++;
}
counter = 1;
for( Transition transition : specification.getMachine().getTransitions().getTransition() )
{
if( Database.mapTransitionNameId.containsKey( transition.getName() ) )
throw new Exception();
if( !Database.mapStateNameId.containsKey( transition.getFrom() ) )
throw new Exception();
if( !Database.mapEventNameId.containsKey( transition.getOn() ) )
throw new Exception();
if( !Database.mapStateNameId.containsKey( transition.getTo() ) )
throw new Exception();
transition.setId( String.valueOf( counter ) );
Database.mapTransitionNameId.put( transition.getName(), counter );
Database.mapStateTransitionOut.get( transition.getFrom() ).add( transition.getName() );
counter++;
}
{
if( !Database.mapStateNameId.containsKey( specification.getMachine().getStart().getName() ) )
throw new Exception();
specification.getMachine().getStart().setId( String.valueOf( Database.mapStateNameId.get( specification.getMachine().getStart().getName() ) ) );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -