bool isConditionActionSubsystem( ESMoL::Subsystem subsystem ) { ActionPortVector actionPortVector = subsystem.ActionPort_kind_children(); if ( actionPortVector.size() != 1 ) return false; ESMoL::Port port = actionPortVector.front(); LineSet lineSet = port.srcLine(); if ( lineSet.size() != 1 ) return false; ESMoL::Line line = *lineSet.begin(); ESMoL::Port srcPort = line.srcLine_end(); ESMoL::Block block = ESMoL::Block::Cast( srcPort.GetParent() ); return block.BlockType() == "If" || block.BlockType() == "SwitchCase"; }