//---------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner venkatja
// @backupOwner willa
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Data.Entity.Design.Common;
using System.Data.Entity.Design;
namespace System.Data.Entity.Design.PluralizationServices
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Pluralization")]
public abstract class PluralizationService
{
public CultureInfo Culture { get; protected set; }
public abstract bool IsPlural(string word);
public abstract bool IsSingular(string word);
public abstract string Pluralize(string word);
public abstract string Singularize(string word);
///
/// Factory method for PluralizationService. Only support english pluralization.
/// Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator
/// to extend the service to other locales.
///
/// CultureInfo
/// PluralizationService
public static PluralizationService CreateService(CultureInfo culture)
{
EDesignUtil.CheckArgumentNull(culture, "culture");
if (culture.TwoLetterISOLanguageName == "en")
{
return new EnglishPluralizationService();
}
else
{
throw new NotImplementedException(Strings.UnsupportedLocaleForPluralizationServices(culture.DisplayName));
}
}
}
}