//---------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Data.Entity.Design.PluralizationServices;
using System.Data.Metadata.Edm;
using System.IO;
using System.Data.Entity.Design.SsdlGenerator;
using System.Data.Entity.Design.Common;
using System.Diagnostics;
namespace System.Data.Entity.Design
{
internal class EntityDesignPluralizationHandler
{
///
/// user might set the service to null, so we have to check the null when using this property
///
internal PluralizationService Service
{
get;
set;
}
///
/// Handler for pluralization service in Entity Design
///
/// overall switch for the service, the service only start working when the value is true
///
///
internal EntityDesignPluralizationHandler(PluralizationService service)
{
this.Service = service;
}
internal string GetEntityTypeName(string storeTableName)
{
return this.Service != null ? this.Service.Singularize(storeTableName) : storeTableName;
}
internal string GetEntitySetName(string storeTableName)
{
return this.Service != null ? this.Service.Pluralize(storeTableName) : storeTableName;
}
internal string GetNavigationPropertyName(AssociationEndMember toEnd, string storeTableName)
{
if (this.Service != null)
{
return toEnd.RelationshipMultiplicity == RelationshipMultiplicity.Many ?
this.Service.Pluralize(storeTableName) : this.Service.Singularize(storeTableName);
}
else
{
return storeTableName;
}
}
}
}