Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / CqlGeneration / CqlIdentifiers.cs / 1 / CqlIdentifiers.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Common.Utils; using System.Text; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; namespace System.Data.Mapping.ViewGeneration.Structures { // This class is responsible for ensuring unique aliases for _from0, etc // and block aliases T, T0, T1, etc internal class CqlIdentifiers : InternalBase { #region Constructor internal CqlIdentifiers() { m_identifiers = new Set(StringComparer.Ordinal); } #endregion #region Fields private Set m_identifiers; #endregion #region Methods // effects: Given a number, returns _from if it does not clashes with // any identifier, else returns _from_ _ where is the first number from 0 // where there is no clash internal string GetFromVariable(int num) { return GetNonConflictingName("_from", num); } // effects: Given a number, returns T if it does not clashes with // any identifier, else returns T_ _ where is the first number from 0 // where there is no clash internal string GetBlockAlias(int num) { return GetNonConflictingName("T", num); } // effects: Given a number, returns T if it does not clashes with // any identifier, else returns T_ where is the first number from 0 // where there is no clash internal string GetBlockAlias() { return GetNonConflictingName("T", -1); } internal void AddIdentifier(string identifier) { m_identifiers.Add(identifier.ToLower(CultureInfo.InvariantCulture)); } private string GetNonConflictingName(string prefix, int number) { // Do a case sensitive search but return the string that uses the // original prefix string result = number < 0 ? prefix : StringUtil.FormatInvariant("{0}{1}", prefix, number); // Check if the prefix exists or not if (m_identifiers.Contains(result.ToLower(CultureInfo.InvariantCulture)) == false) { return result; } // Go through integers and find the first one that does not clash for (int count = 0; count < int.MaxValue; count++) { if (number < 0) { result = StringUtil.FormatInvariant("{0}_{1}", prefix, count); } else { result = StringUtil.FormatInvariant("{0}_{1}_{2}", prefix, count, number); } if (m_identifiers.Contains(result.ToLower(CultureInfo.InvariantCulture)) == false) { return result; } } Debug.Fail("Found no unique _from till MaxValue?"); return null; } internal override void ToCompactString(StringBuilder builder) { m_identifiers.ToCompactString(builder); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Common.Utils; using System.Text; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; namespace System.Data.Mapping.ViewGeneration.Structures { // This class is responsible for ensuring unique aliases for _from0, etc // and block aliases T, T0, T1, etc internal class CqlIdentifiers : InternalBase { #region Constructor internal CqlIdentifiers() { m_identifiers = new Set(StringComparer.Ordinal); } #endregion #region Fields private Set m_identifiers; #endregion #region Methods // effects: Given a number, returns _from if it does not clashes with // any identifier, else returns _from_ _ where is the first number from 0 // where there is no clash internal string GetFromVariable(int num) { return GetNonConflictingName("_from", num); } // effects: Given a number, returns T if it does not clashes with // any identifier, else returns T_ _ where is the first number from 0 // where there is no clash internal string GetBlockAlias(int num) { return GetNonConflictingName("T", num); } // effects: Given a number, returns T if it does not clashes with // any identifier, else returns T_ where is the first number from 0 // where there is no clash internal string GetBlockAlias() { return GetNonConflictingName("T", -1); } internal void AddIdentifier(string identifier) { m_identifiers.Add(identifier.ToLower(CultureInfo.InvariantCulture)); } private string GetNonConflictingName(string prefix, int number) { // Do a case sensitive search but return the string that uses the // original prefix string result = number < 0 ? prefix : StringUtil.FormatInvariant("{0}{1}", prefix, number); // Check if the prefix exists or not if (m_identifiers.Contains(result.ToLower(CultureInfo.InvariantCulture)) == false) { return result; } // Go through integers and find the first one that does not clash for (int count = 0; count < int.MaxValue; count++) { if (number < 0) { result = StringUtil.FormatInvariant("{0}_{1}", prefix, count); } else { result = StringUtil.FormatInvariant("{0}_{1}_{2}", prefix, count, number); } if (m_identifiers.Contains(result.ToLower(CultureInfo.InvariantCulture)) == false) { return result; } } Debug.Fail("Found no unique _from till MaxValue?"); return null; } internal override void ToCompactString(StringBuilder builder) { m_identifiers.ToCompactString(builder); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RelationshipEntry.cs
- SafeHandle.cs
- Pen.cs
- TextEffect.cs
- ContentPlaceHolder.cs
- ScriptingProfileServiceSection.cs
- XPathSelectionIterator.cs
- NavigationExpr.cs
- EventKeyword.cs
- JournalEntryStack.cs
- TextureBrush.cs
- FixedTextBuilder.cs
- RtType.cs
- ComponentDesigner.cs
- VisualStyleElement.cs
- VersionedStream.cs
- ExtendedPropertyDescriptor.cs
- XMLSchema.cs
- ReceiveMessageRecord.cs
- PropertyEntry.cs
- DtrList.cs
- SqlRowUpdatedEvent.cs
- WaitHandleCannotBeOpenedException.cs
- PartialTrustVisibleAssemblyCollection.cs
- SimpleWebHandlerParser.cs
- UInt16Storage.cs
- ControlBindingsCollection.cs
- CheckedPointers.cs
- AssemblyCollection.cs
- DocumentGridContextMenu.cs
- InputReferenceExpression.cs
- CodeCommentStatementCollection.cs
- PingOptions.cs
- Int64Animation.cs
- UriSection.cs
- GridItem.cs
- DataGridViewHeaderCell.cs
- DocumentOrderQuery.cs
- FixedTextContainer.cs
- OdbcCommandBuilder.cs
- ClientSettings.cs
- SHA384.cs
- BamlRecords.cs
- MailWebEventProvider.cs
- SqlInfoMessageEvent.cs
- QueryReaderSettings.cs
- CurrentTimeZone.cs
- MessagePropertyFilter.cs
- RelativeSource.cs
- DateTimeOffset.cs
- SqlStatistics.cs
- TextChange.cs
- BinHexDecoder.cs
- PeerApplication.cs
- CurrencyManager.cs
- AttributeSetAction.cs
- LineSegment.cs
- ConfigurationValues.cs
- ManagementEventWatcher.cs
- TextEditorSpelling.cs
- ParserExtension.cs
- TypeSemantics.cs
- Walker.cs
- TimersDescriptionAttribute.cs
- MembershipValidatePasswordEventArgs.cs
- HashCodeCombiner.cs
- PageFunction.cs
- MenuItemCollection.cs
- GradientStop.cs
- LineVisual.cs
- SchemaEntity.cs
- ModelPropertyImpl.cs
- View.cs
- ProvidePropertyAttribute.cs
- IDReferencePropertyAttribute.cs
- StringFunctions.cs
- EntityDataSourceState.cs
- LinqDataSourceContextEventArgs.cs
- SiteMap.cs
- ConvertBinder.cs
- HitTestParameters3D.cs
- SrgsElement.cs
- GridViewRow.cs
- SourceElementsCollection.cs
- dataSvcMapFileLoader.cs
- Point3DCollectionValueSerializer.cs
- ScriptManager.cs
- SmiEventSink_Default.cs
- DependencyObjectValidator.cs
- EntityDataSourceDesignerHelper.cs
- ConfigurationCollectionAttribute.cs
- HttpPostedFileBase.cs
- CoreSwitches.cs
- X509Utils.cs
- ImageIndexConverter.cs
- PageCatalogPart.cs
- peernodeimplementation.cs
- TextDecoration.cs
- BamlLocalizableResource.cs
- OracleException.cs