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
- EventLogger.cs
- SqlDataSourceCommandEventArgs.cs
- BitmapEffectCollection.cs
- DoubleConverter.cs
- DispatchRuntime.cs
- CustomValidator.cs
- Rotation3DAnimationUsingKeyFrames.cs
- WebZone.cs
- OptionUsage.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- RequiredFieldValidator.cs
- ToolStripItemGlyph.cs
- VScrollBar.cs
- ResetableIterator.cs
- COM2ColorConverter.cs
- ManifestBasedResourceGroveler.cs
- DateTimeFormatInfoScanner.cs
- ObjectDataSource.cs
- QuaternionValueSerializer.cs
- WindowsEditBox.cs
- LayoutEngine.cs
- ActivityDesignerLayoutSerializers.cs
- WebExceptionStatus.cs
- HtmlHead.cs
- CommandConverter.cs
- AesCryptoServiceProvider.cs
- CodeNamespace.cs
- WebPartEventArgs.cs
- XmlTypeAttribute.cs
- AdRotatorDesigner.cs
- ZipIOFileItemStream.cs
- TerminatorSinks.cs
- TypeValidationEventArgs.cs
- ProcessHostServerConfig.cs
- SmtpAuthenticationManager.cs
- CryptoConfig.cs
- SQLBinaryStorage.cs
- HashAlgorithm.cs
- ServerIdentity.cs
- ObjectToken.cs
- SqlGatherProducedAliases.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- XsltInput.cs
- SpotLight.cs
- Blend.cs
- CodeEntryPointMethod.cs
- HtmlElement.cs
- BitConverter.cs
- SparseMemoryStream.cs
- XmlDocument.cs
- MessageQueueKey.cs
- RtfControlWordInfo.cs
- OletxDependentTransaction.cs
- NetworkInformationException.cs
- Substitution.cs
- GridViewRowEventArgs.cs
- webbrowsersite.cs
- DocumentGridPage.cs
- GlyphingCache.cs
- MemberInfoSerializationHolder.cs
- PagerSettings.cs
- PathFigureCollectionValueSerializer.cs
- ExtendedPropertyDescriptor.cs
- NameValueSectionHandler.cs
- SoapSchemaMember.cs
- SecurityHelper.cs
- cookie.cs
- ThreadPool.cs
- ComponentResourceKey.cs
- Renderer.cs
- IPPacketInformation.cs
- DataControlFieldCollection.cs
- SrgsElementList.cs
- DataSourceDescriptorCollection.cs
- ArgumentNullException.cs
- ToolBarOverflowPanel.cs
- XmlEnumAttribute.cs
- XmlName.cs
- SettingsProperty.cs
- TableItemProviderWrapper.cs
- HttpListenerContext.cs
- ContractMapping.cs
- EasingFunctionBase.cs
- DrawingContext.cs
- TerminatorSinks.cs
- DataGridViewColumnTypePicker.cs
- ACL.cs
- PageWrapper.cs
- DataServiceHost.cs
- ButtonFlatAdapter.cs
- WSDualHttpSecurityMode.cs
- ResourceExpressionEditorSheet.cs
- SqlParameterCollection.cs
- ObjectRef.cs
- CompilerHelpers.cs
- PropertyDescriptorComparer.cs
- BridgeDataReader.cs
- BlockUIContainer.cs
- ServerValidateEventArgs.cs
- BindingElementExtensionElement.cs