public TaskExitCodeModel(IConnectionPointReferenceSymbol connectionPointReferenceSymbol) {

            if (connectionPointReferenceSymbol == null) {
                throw new ArgumentNullException(nameof(connectionPointReferenceSymbol));
            }

            var exitTransition = connectionPointReferenceSymbol.ExitTransition;
            var task = exitTransition.TaskDefinition;

            TaskCodeModel = new TaskCodeModel(task);
            AfterLogicMethodName = $"After{exitTransition.Source?.Name}Logic";
        }
        internal ExitTransition(ExitTransitionDefinitionSyntax syntax, INodeReferenceSymbol source, IConnectionPointReferenceSymbol connectionPoint, IEdgeModeSymbol edgeMode, INodeReferenceSymbol target) {

            if (syntax == null) {
                throw new ArgumentNullException(nameof(syntax));
            }

            Syntax          = syntax;
            Source          = source;
            ConnectionPoint = connectionPoint;
            EdgeMode        = edgeMode;
            Target          = target;
        }