private Func<ICSharpFunctionDeclaration, ICSharpStatement> CreateEnsuresFactoryMethod(EnsuresType ensuresType)
        {
            if (ensuresType == EnsuresType.NullCheck)
                return CreateResultNotNullEnsures;

            return CreateEnumResultIsDefinedEnsures;
        }
        private EnsuresExecutor(ICSharpContextActionDataProvider provider, ICSharpFunctionDeclaration selectedFunction,
            EnsuresType ensuresType)
            : base(provider)
        {
            Contract.Requires(provider != null);
            Contract.Requires(selectedFunction != null);
            Contract.Requires(Enum.IsDefined(typeof (EnsuresType), ensuresType));

            _selectedFunction = selectedFunction;
            _ensuresFactoryMethod = CreateEnsuresFactoryMethod(ensuresType);
        }
        private EnsuresExecutor(ICSharpContextActionDataProvider provider, ICSharpFunctionDeclaration selectedFunction,
                                EnsuresType ensuresType)
            : base(provider)
        {
            Contract.Requires(provider != null);
            Contract.Requires(selectedFunction != null);
            Contract.Requires(Enum.IsDefined(typeof(EnsuresType), ensuresType));

            _selectedFunction     = selectedFunction;
            _ensuresFactoryMethod = CreateEnsuresFactoryMethod(ensuresType);
        }
        private Func <ICSharpFunctionDeclaration, ICSharpStatement> CreateEnsuresFactoryMethod(EnsuresType ensuresType)
        {
            if (ensuresType == EnsuresType.NullCheck)
            {
                return(CreateResultNotNullEnsures);
            }

            return(CreateEnumResultIsDefinedEnsures);
        }