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
- DynamicQueryableWrapper.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- Validator.cs
- FormsAuthenticationUserCollection.cs
- ExtendedTransformFactory.cs
- TrustLevelCollection.cs
- ToolboxItemCollection.cs
- DodSequenceMerge.cs
- ExpressionLexer.cs
- SessionEndedEventArgs.cs
- SafeBitVector32.cs
- BeginStoryboard.cs
- SafeFindHandle.cs
- ObjectSerializerFactory.cs
- Attributes.cs
- QfeChecker.cs
- TogglePattern.cs
- LoadGrammarCompletedEventArgs.cs
- LoginName.cs
- XmlDataSourceView.cs
- GridViewDeleteEventArgs.cs
- References.cs
- XmlNodeList.cs
- DigestTraceRecordHelper.cs
- MatrixUtil.cs
- ContractReference.cs
- AdjustableArrowCap.cs
- InheritanceUI.cs
- BooleanExpr.cs
- DbDeleteCommandTree.cs
- MulticastNotSupportedException.cs
- WebPartConnectionsCancelEventArgs.cs
- ThreadStaticAttribute.cs
- ObjectContext.cs
- InstanceBehavior.cs
- SplitterCancelEvent.cs
- TextTreeObjectNode.cs
- WindowsRichEdit.cs
- SqlDataSourceParameterParser.cs
- DtrList.cs
- XmlSchemaParticle.cs
- NetStream.cs
- HandleCollector.cs
- ConstrainedDataObject.cs
- DataListItemEventArgs.cs
- DataGridViewCellConverter.cs
- ApplicationCommands.cs
- CharacterMetricsDictionary.cs
- ColorKeyFrameCollection.cs
- RegionData.cs
- StreamInfo.cs
- MinimizableAttributeTypeConverter.cs
- Adorner.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- LinqDataSourceValidationException.cs
- SendMailErrorEventArgs.cs
- FtpWebResponse.cs
- Utils.cs
- IIS7WorkerRequest.cs
- TypeConverter.cs
- ObjectIDGenerator.cs
- StrokeNodeOperations.cs
- RecognizedAudio.cs
- ResXDataNode.cs
- SingleStorage.cs
- HtmlFormAdapter.cs
- FontFamilyConverter.cs
- BoundPropertyEntry.cs
- ComponentResourceKey.cs
- ScrollableControlDesigner.cs
- DocumentOrderComparer.cs
- CodePageUtils.cs
- Literal.cs
- EventLogConfiguration.cs
- TextDocumentView.cs
- BrowserCapabilitiesCompiler.cs
- RelationshipConverter.cs
- LinkedDataMemberFieldEditor.cs
- embossbitmapeffect.cs
- OleDbPermission.cs
- ComponentEvent.cs
- Int32RectValueSerializer.cs
- PermissionToken.cs
- Util.cs
- FrameworkPropertyMetadata.cs
- DESCryptoServiceProvider.cs
- OLEDB_Enum.cs
- MarginCollapsingState.cs
- ApplicationFileParser.cs
- ObjectTag.cs
- BinaryVersion.cs
- Variable.cs
- ProviderConnectionPoint.cs
- TempEnvironment.cs
- DataListCommandEventArgs.cs
- httpserverutility.cs
- StrokeDescriptor.cs
- Dispatcher.cs
- SoapDocumentMethodAttribute.cs
- SelectionPatternIdentifiers.cs