Beispiel #1
0
        /// <summary>
        /// Extracts the words from case and language.
        /// </summary>
        /// <param name="words">The words.</param>
        /// <param name="dbName">Name of the db.</param>
        /// <returns></returns>
        protected virtual IList <string> ExtractWordsFromCaseAndLanguage(ILanguageWords words, string dbName)
        {
            var extractedWords = new List <string>();

            foreach (var wordsMagma in ExtractWordsFromCase(dbName, SubstitutionChar))
            {
                extractedWords.AddRange(words.GetWords(wordsMagma));
            }
            return(extractedWords);
        }
 private string Format(ILanguageWords words, IList<string> parts, Case newCase, Singularization singularization)
 {
     var result = new StringBuilder();
     for (int partIndex = 0; partIndex < parts.Count; partIndex++)
     {
         Position position = 0;
         if (partIndex == 0)
             position |= Position.First;
         if (partIndex == parts.Count - 1)
             position |= Position.Last;
         result.Append(AdjustPart(words, parts[partIndex], position, newCase, singularization));
     }
     return result.ToString();
 }
Beispiel #3
0
        /// <summary>
        /// Extracts the words from given text.
        /// </summary>
        /// <param name="words">The words.</param>
        /// <param name="dbName">Name of the db.</param>
        /// <param name="extraction">The extraction type (case or language identification).</param>
        /// <returns></returns>
        protected virtual IList <string> ExtractWords(ILanguageWords words, string dbName, WordsExtraction extraction)
        {
            switch (extraction)
            {
            case WordsExtraction.None:
                return(new[] { dbName });

            case WordsExtraction.FromCase:
                return(ExtractWordsFromCase(dbName, SubstitutionChar));

            case WordsExtraction.FromDictionary:
                return(ExtractWordsFromCaseAndLanguage(words, dbName));

            default:
                throw new ArgumentOutOfRangeException("extraction");
            }
        }
Beispiel #4
0
        /// <summary>
        /// Formats the specified words.
        /// </summary>
        /// <param name="words">The words.</param>
        /// <param name="parts">The parts.</param>
        /// <param name="newCase">The new case.</param>
        /// <param name="singularization">The singularization.</param>
        /// <returns></returns>
        private string Format(ILanguageWords words, IList <string> parts, Case newCase, Singularization singularization)
        {
            var result = new StringBuilder();

            for (int partIndex = 0; partIndex < parts.Count; partIndex++)
            {
                Position position = 0;
                if (partIndex == 0)
                {
                    position |= Position.First;
                }
                if (partIndex == parts.Count - 1)
                {
                    position |= Position.Last;
                }
                result.Append(AdjustPart(words, parts[partIndex], position, newCase, singularization));
            }
            return(result.ToString());
        }
Beispiel #5
0
        /// <summary>
        /// Adjusts the part.
        /// </summary>
        /// <param name="words">The words.</param>
        /// <param name="part">The part.</param>
        /// <param name="position">The position.</param>
        /// <param name="newCase">The new case.</param>
        /// <param name="singularization">The singularization.</param>
        /// <returns></returns>
        protected virtual string AdjustPart(ILanguageWords words, string part, Position position, Case newCase, Singularization singularization)
        {
            if (singularization != Singularization.DontChange && (position & Position.Last) != 0)
            {
                if (singularization == Singularization.Singular)
                {
                    part = words.Singularize(part);
                }
                else
                {
                    part = words.Pluralize(part);
                }
            }
            Case applyCase = newCase;

            if (applyCase == Case.camelCase && (position & Position.First) == 0)
            {
                applyCase = Case.PascalCase;
            }
            switch (applyCase)
            {
            case Case.Leave:
                break;

            case Case.camelCase:
                part = ToCamelCase(part);
                break;

            case Case.PascalCase:
                part = ToPascalCase(part);
                break;

            case Case.NetCase:
                part = ToNetCase(part);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            return(part);
        }
Beispiel #6
0
        /// <summary>
        /// Formats the specified words.
        /// </summary>
        /// <param name="words">The words.</param>
        /// <param name="oldName">The old name.</param>
        /// <param name="newCase">The new case.</param>
        /// <param name="singularization">The singularization.</param>
        /// <returns></returns>
        public virtual string Format(ILanguageWords words, string oldName, Case newCase, Singularization singularization)
        {
            var parts = ExtractWordsFromCaseAndLanguage(words, oldName);

            return(Format(words, parts, newCase, singularization));
        }
 /// <summary>
 /// Extracts the words from given text.
 /// </summary>
 /// <param name="words">The words.</param>
 /// <param name="dbName">Name of the db.</param>
 /// <param name="extraction">The extraction type (case or language identification).</param>
 /// <returns></returns>
 protected virtual IList<string> ExtractWords(ILanguageWords words, string dbName, WordsExtraction extraction)
 {
     switch (extraction)
     {
     case WordsExtraction.None:
         return new[] { dbName };
     case WordsExtraction.FromCase:
         return ExtractWordsFromCase(dbName, SubstitutionChar);
     case WordsExtraction.FromDictionary:
         return ExtractWordsFromCaseAndLanguage(words, dbName);
     default:
         throw new ArgumentOutOfRangeException("extraction");
     }
 }
 /// <summary>
 /// Extracts the words from case and language.
 /// </summary>
 /// <param name="words">The words.</param>
 /// <param name="dbName">Name of the db.</param>
 /// <returns></returns>
 protected virtual IList<string> ExtractWordsFromCaseAndLanguage(ILanguageWords words, string dbName)
 {
     var extractedWords = new List<string>();
     foreach (var wordsMagma in ExtractWordsFromCase(dbName, SubstitutionChar))
     {
         extractedWords.AddRange(words.GetWords(wordsMagma));
     }
     return extractedWords;
 }
 /// <summary>
 /// Adjusts the part.
 /// </summary>
 /// <param name="words">The words.</param>
 /// <param name="part">The part.</param>
 /// <param name="position">The position.</param>
 /// <param name="newCase">The new case.</param>
 /// <param name="singularization">The singularization.</param>
 /// <returns></returns>
 protected virtual string AdjustPart(ILanguageWords words, string part, Position position, Case newCase, Singularization singularization)
 {
     if (singularization != Singularization.DontChange && (position & Position.Last) != 0)
     {
         if (singularization == Singularization.Singular)
             part = words.Singularize(part);
         else
             part = words.Pluralize(part);
     }
     Case applyCase = newCase;
     if (applyCase == Case.camelCase && (position & Position.First) == 0)
         applyCase = Case.PascalCase;
     switch (applyCase)
     {
     case Case.Leave:
         break;
     case Case.camelCase:
         part = ToCamelCase(part);
         break;
     case Case.PascalCase:
         part = ToPascalCase(part);
         break;
     case Case.NetCase:
         part = ToNetCase(part);
         break;
     default:
         throw new ArgumentOutOfRangeException();
     }
     return part;
 }
 /// <summary>
 /// Formats the specified words.
 /// </summary>
 /// <param name="words">The words.</param>
 /// <param name="oldName">The old name.</param>
 /// <param name="newCase">The new case.</param>
 /// <param name="singularization">The singularization.</param>
 /// <returns></returns>
 public virtual string Format(ILanguageWords words, string oldName, Case newCase, Singularization singularization)
 {
     var parts = ExtractWordsFromCaseAndLanguage(words, oldName);
     return Format(words, parts, newCase, singularization);
 }
 public virtual string Format(ILanguageWords words, string oldName, Case newCase, Singularization singularization)
 {
     var parts = words.GetWords(oldName);
     return Format(words, parts, newCase, singularization);
 }