Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / CqlGeneration / CqlIdentifiers.cs / 1305376 / 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); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] internal void AddIdentifier(string identifier) { m_identifiers.Add(identifier.ToLower(CultureInfo.InvariantCulture)); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase")] 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
- HtmlImage.cs
- DoubleAnimation.cs
- SchemaCollectionCompiler.cs
- RuleSetBrowserDialog.cs
- SessionEndingCancelEventArgs.cs
- WinFormsComponentEditor.cs
- AsyncCallback.cs
- IndexerNameAttribute.cs
- ObjectDataProvider.cs
- ConnectionPointCookie.cs
- HwndSubclass.cs
- ADConnectionHelper.cs
- GradientSpreadMethodValidation.cs
- ImmutableCommunicationTimeouts.cs
- RenderDataDrawingContext.cs
- ExtensionsSection.cs
- TargetControlTypeAttribute.cs
- CustomError.cs
- UpdateException.cs
- MarkupWriter.cs
- BamlResourceDeserializer.cs
- ProcessInfo.cs
- NameTable.cs
- WebBrowserUriTypeConverter.cs
- FontDialog.cs
- CodeStatement.cs
- BamlBinaryWriter.cs
- DbConnectionPool.cs
- XComponentModel.cs
- ResourceBinder.cs
- ListQueryResults.cs
- ConfigurationException.cs
- EditingCoordinator.cs
- PagePropertiesChangingEventArgs.cs
- Encoder.cs
- ChildDocumentBlock.cs
- ContainerUtilities.cs
- CacheDependency.cs
- DatatypeImplementation.cs
- QueryFunctions.cs
- Subtree.cs
- KnownBoxes.cs
- ColorAnimationUsingKeyFrames.cs
- ExternalFile.cs
- Point4D.cs
- ClientSettingsStore.cs
- PersonalizationAdministration.cs
- WinInetCache.cs
- XmlSchemaFacet.cs
- JoinGraph.cs
- ParentControlDesigner.cs
- Image.cs
- SetterTriggerConditionValueConverter.cs
- LinkedResource.cs
- TraceSection.cs
- UriTemplateHelpers.cs
- ActivityExecutorDelegateInfo.cs
- NotifyCollectionChangedEventArgs.cs
- InvalidPropValue.cs
- TemplatedWizardStep.cs
- DataTablePropertyDescriptor.cs
- ControlPropertyNameConverter.cs
- RawStylusInputCustomData.cs
- ExpressionValueEditor.cs
- ObjectViewFactory.cs
- MailHeaderInfo.cs
- HostVisual.cs
- DrawingGroup.cs
- CommandField.cs
- _DigestClient.cs
- WebBrowser.cs
- Formatter.cs
- QuaternionAnimationUsingKeyFrames.cs
- PageCodeDomTreeGenerator.cs
- DeadLetterQueue.cs
- SecurityCriticalDataForSet.cs
- SettingsProperty.cs
- DropShadowBitmapEffect.cs
- WindowsFormsDesignerOptionService.cs
- GuidelineSet.cs
- ApplicationSettingsBase.cs
- Pair.cs
- BuildProvider.cs
- ListDependantCardsRequest.cs
- AsymmetricKeyExchangeDeformatter.cs
- ButtonFieldBase.cs
- DataObjectFieldAttribute.cs
- NameValueConfigurationCollection.cs
- DataBoundControlHelper.cs
- DecoderReplacementFallback.cs
- ISSmlParser.cs
- IdentityHolder.cs
- AddInEnvironment.cs
- CompositeActivityTypeDescriptor.cs
- SignedInfo.cs
- XPathExpr.cs
- MasterPageParser.cs
- xamlnodes.cs
- JsonReaderDelegator.cs
- EditorResources.cs