Exemplo n.º 1
0
        public static RenameProcessor Build(SearchType searchType, string searchString, bool searchCaseSensitive,
                                            ReplaceType replaceType, string replaceString)
        {
            INameAnalyzer nameAnalyzer = null;

            switch (searchType)
            {
            case SearchType.WhiteSpace: { nameAnalyzer = new WhiteSpaceAnalyzer();    break; }

            case SearchType.Special:    { nameAnalyzer = new SpecialEndingAnalyzer(); break; }

            case SearchType.Characters:
            {
                var splitParts = searchString.Split(',')
                                 .Select(split => split.Trim());

                var isMultiSearch = false;

                if (splitParts.Count() > 1)
                {
                    if (splitParts.All(split => split.StartsWith("\"") && split.EndsWith("\"")))
                    {
                        isMultiSearch = true;
                    }
                }

                if (isMultiSearch)
                {
                    nameAnalyzer = new MultiStringAnalyzer(searchString, searchCaseSensitive);
                }
                else
                {
                    nameAnalyzer = new SingleStringAnalyzer(searchString, searchCaseSensitive);
                }
                break;
            }
            }

            INameRefactorer nameRefactorer = null;

            switch (replaceType)
            {
            case ReplaceType.Delete:     { nameRefactorer = new StringRefactorer("");            break; }

            case ReplaceType.WhiteSpace: { nameRefactorer = new StringRefactorer(" ");           break; }

            case ReplaceType.Characters: { nameRefactorer = new StringRefactorer(replaceString); break; }
            }

            return(new RenameProcessor(nameAnalyzer, nameRefactorer));
        }
Exemplo n.º 2
0
 public RenameProcessor(INameAnalyzer analyzer, INameRefactorer refactorer)
 {
     this.analyzer   = analyzer;
     this.refactorer = refactorer;
 }