private void createDirectConnectionsForOutgoingTransitions(TCGRealNode in_oOuterNode) throws Exception
{
List<TransitionCreationInformationContainer> colTransitionInformations =
new ArrayList<TransitionCreationInformationContainer>();
TestCaseGraph oTCG = in_oOuterNode.getSubGraph();
if(oTCG != null) {
// connections for super-transitions with real event
for(TCGTransition oTransition : in_oOuterNode.getOutgoingTransitions()) {
if(!oTransition.getEvents().isEmpty() &&
!oTransition.getEvents().get(0).isDefaultEvent()) {
for(TestCaseRegion oRegion : oTCG.getRegions()) {
for(TCGNode oInnerNode : oRegion.getNodes()) {
// only connect real nodes!
if(oInnerNode instanceof TCGRealNode) {
if(Configuration.isInnerTransitionHasPriorityOverOuterTransition()) {
if(oInnerNode.getName().endsWith("WAITING_FOR_TRAIN_TO_REACH_STANDSTILL") &&
// if(oInnerNode.getName().endsWith("WAITING_FOR_ACK_OF_UNREACHABLE_LTO") &&
oTransition.getTargetNode().getName() != null &&
oTransition.getTargetNode().getName().endsWith("fail")) {
}
Map<TCGEvent, TCGDisjunctiveNormalForm> colEventGuardCombinations =
TCGTransitionHelperClass.
returnAvailableEventsAndGuardsForStateAndOutgoingTransition(oInnerNode, oTransition);
if(!colEventGuardCombinations.keySet().isEmpty()) {
colTransitionInformations.add(
new TransitionCreationInformationContainer(
colEventGuardCombinations, oRegion,
oInnerNode, oTransition));
}
}
else {
colTransitionInformations.add(
new TransitionCreationInformationContainer(
null, oRegion,
oInnerNode, oTransition));
}
}
}
}
}
}
// connections for default transitions (only from states without outgoing transitions)
for(TestCaseRegion oRegion : oTCG.getRegions()) {
List<TCGNode> colEndNodes = new ArrayList<TCGNode>();
colEndNodes.addAll(TCGRegionHelperClass.findNodesWithOutOutgoingTransitions(oRegion));
for(TCGTransition oTransition : in_oOuterNode.getOutgoingTransitions()) {
// default transitions are only triggered from final states