public Void execute(Context context) {
NodeInstanceFactoryRegistry n = NodeInstanceFactoryRegistry.INSTANCE;
n.register( RuleSetNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( Split.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( Join.class,
new ReuseNodeFactory( SimulationNodeInstance.class ) );
n.register( StartNode.class,
new CreateNewNodeFactory( SimulationStartNodeInstance.class ) );
n.register( EndNode.class,
new CreateNewNodeFactory( SimulationEndNodeInstance.class ) );
n.register( MilestoneNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( SubProcessNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( ActionNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( WorkItemNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( TimerNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( FaultNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( CompositeNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( CompositeContextNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( HumanTaskNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( ForEachNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( EventNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( StateNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register( DynamicNode.class,
new CreateNewNodeFactory( SimulationNodeInstance.class ) );
n.register(CatchLinkNode.class, new CreateNewNodeFactory(
SimulationNodeInstance.class));
n.register(ThrowLinkNode.class, new CreateNewNodeFactory(
SimulationNodeInstance.class));
KieSession session = ((KnowledgeCommandContext)context).getKieSession();
simContext.setClock((SessionPseudoClock) session.getSessionClock());
simContext.setCurrentPath(path);