/// <summary>
        /// Analyzes the specified statement.
        /// </summary>
        /// <param name="typeMemberDeclaration">
        /// The type member declaration.
        /// </param>
        /// <returns>
        /// Returns the suggestion base[].
        /// </returns>
        public SuggestionBase[] Analyze(ITypeMemberDeclaration typeMemberDeclaration)
        {
            var modifiersOwnerDeclaration = typeMemberDeclaration as IModifiersOwnerDeclaration;
              if (modifiersOwnerDeclaration == null)
              {
            return null;
              }

              var valueAnalysisRefactoring = new ValueAnalysisRefactoring(typeMemberDeclaration);

              if (!valueAnalysisRefactoring.IsAvailable())
              {
            return null;
              }

              var suggestions = new List<SuggestionBase>();

              suggestions.Add(new ValueAnalysisSuggestion(this.solution, typeMemberDeclaration));

              return suggestions.ToArray();
        }
        /// <summary>
        /// Determines whether this instance is available.
        /// </summary>
        /// <param name="element">
        /// The element.
        /// </param>
        /// <returns>
        /// <c>true</c> if this instance is available; otherwise, <c>false</c>.
        /// </returns>
        protected override bool IsAvailable(IElement element)
        {
            var typeMemberDeclaration = this.GetTypeMemberDeclaration();
              if (typeMemberDeclaration == null)
              {
            return false;
              }

              var valueAnalysisRefactoring = new ValueAnalysisRefactoring(typeMemberDeclaration);

              return valueAnalysisRefactoring.IsAvailable();
        }