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
- printdlgexmarshaler.cs
- LambdaCompiler.Expressions.cs
- AsyncOperation.cs
- DataServiceExpressionVisitor.cs
- BevelBitmapEffect.cs
- PolicyException.cs
- Console.cs
- CharAnimationBase.cs
- TableProviderWrapper.cs
- EncoderFallback.cs
- ConfigurationManagerHelperFactory.cs
- Imaging.cs
- MediaTimeline.cs
- ActivityBuilderXamlWriter.cs
- BorderSidesEditor.cs
- WebBrowserHelper.cs
- JavaScriptString.cs
- UnitySerializationHolder.cs
- Roles.cs
- FormsAuthentication.cs
- XamlHostingConfiguration.cs
- ExpressionEditor.cs
- LeaseManager.cs
- EventLogger.cs
- PeerMaintainer.cs
- DrawingContextWalker.cs
- BezierSegment.cs
- ThreadAbortException.cs
- UrlPath.cs
- UniqueConstraint.cs
- ControlBuilderAttribute.cs
- DataPagerCommandEventArgs.cs
- MasterPage.cs
- ConstructorNeedsTagAttribute.cs
- ConfigurationElementCollection.cs
- AnonymousIdentificationSection.cs
- MailSettingsSection.cs
- ServiceDebugBehavior.cs
- SocketPermission.cs
- AvTraceDetails.cs
- _FtpDataStream.cs
- MobileUserControl.cs
- DataGridViewCellCollection.cs
- SqlError.cs
- BrowserTree.cs
- ObjectDataSource.cs
- WindowsFormsEditorServiceHelper.cs
- ActivityDesignerLayoutSerializers.cs
- ToolZone.cs
- MediaElementAutomationPeer.cs
- CodePropertyReferenceExpression.cs
- InternalRelationshipCollection.cs
- DetailsViewModeEventArgs.cs
- MD5.cs
- XmlBaseWriter.cs
- DesignerAttribute.cs
- AccessDataSource.cs
- StringAnimationUsingKeyFrames.cs
- EditorZoneBase.cs
- SEHException.cs
- TreeNodeCollection.cs
- ImagingCache.cs
- OperationCanceledException.cs
- TrustManagerMoreInformation.cs
- ProfileBuildProvider.cs
- RegexGroup.cs
- ToolCreatedEventArgs.cs
- WindowsUpDown.cs
- SchemaType.cs
- ValidationVisibilityAttribute.cs
- XsdBuildProvider.cs
- AnnotationComponentManager.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- Freezable.cs
- CompoundFileIOPermission.cs
- MultitargetUtil.cs
- HttpRequestCacheValidator.cs
- DataGridViewControlCollection.cs
- Help.cs
- DataTableClearEvent.cs
- File.cs
- HtmlShimManager.cs
- SystemColorTracker.cs
- ErrorEventArgs.cs
- DataSourceControl.cs
- HyperLink.cs
- VSWCFServiceContractGenerator.cs
- CatalogZone.cs
- XhtmlStyleClass.cs
- PageStatePersister.cs
- RadioButton.cs
- EqualityComparer.cs
- GPRECTF.cs
- Int64Animation.cs
- FixedPageProcessor.cs
- OpCodes.cs
- MenuCommands.cs
- HttpCapabilitiesSectionHandler.cs
- SBCSCodePageEncoding.cs
- EditorPartCollection.cs