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
- WrapPanel.cs
- SQLDateTimeStorage.cs
- Util.cs
- DataIdProcessor.cs
- MemberDescriptor.cs
- ConsoleTraceListener.cs
- ExpandedWrapper.cs
- ControlPager.cs
- ConstraintManager.cs
- HttpListenerException.cs
- CookieParameter.cs
- DtrList.cs
- ClientProxyGenerator.cs
- ActivityExecutorOperation.cs
- ServiceHandle.cs
- CorrelationResolver.cs
- SimpleTypeResolver.cs
- MetadataSerializer.cs
- StyleHelper.cs
- VisualTarget.cs
- OpCodes.cs
- SecurityPermission.cs
- _DisconnectOverlappedAsyncResult.cs
- IndexerNameAttribute.cs
- NameValueSectionHandler.cs
- HttpListenerException.cs
- _DigestClient.cs
- Baml2006ReaderContext.cs
- Win32PrintDialog.cs
- PenThreadWorker.cs
- MeasurementDCInfo.cs
- CssTextWriter.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SamlSecurityToken.cs
- IssuanceLicense.cs
- WebPartMinimizeVerb.cs
- FrameworkContentElement.cs
- Timer.cs
- SimpleFieldTemplateUserControl.cs
- ConstructorArgumentAttribute.cs
- OdbcStatementHandle.cs
- TreeNodeBindingCollection.cs
- AuthenticatedStream.cs
- DateTimeStorage.cs
- ZipIOExtraFieldElement.cs
- JournalEntry.cs
- TreeNodeClickEventArgs.cs
- BindingExpression.cs
- ToolStripPanelRenderEventArgs.cs
- StrongNameKeyPair.cs
- MD5.cs
- SqlDataReaderSmi.cs
- LinkLabelLinkClickedEvent.cs
- SqlDataSourceCommandParser.cs
- CacheRequest.cs
- StoreContentChangedEventArgs.cs
- HttpProfileBase.cs
- InvalidComObjectException.cs
- _emptywebproxy.cs
- IPipelineRuntime.cs
- SqlGenericUtil.cs
- ReverseQueryOperator.cs
- Missing.cs
- DBSqlParserColumnCollection.cs
- NavigationWindowAutomationPeer.cs
- TreeViewHitTestInfo.cs
- NativeWrapper.cs
- HMACSHA384.cs
- EntityDataSourceContextCreatingEventArgs.cs
- EntityChangedParams.cs
- EUCJPEncoding.cs
- QueryStringParameter.cs
- XslAst.cs
- MsdtcWrapper.cs
- SchemaMapping.cs
- ModelTreeEnumerator.cs
- OperationResponse.cs
- ViewGenResults.cs
- NetworkAddressChange.cs
- FixedSOMPage.cs
- arabicshape.cs
- FixedTextView.cs
- BufferedGraphicsManager.cs
- HtmlTitle.cs
- NameNode.cs
- ProcessHostConfigUtils.cs
- PipelineModuleStepContainer.cs
- ValidatorCompatibilityHelper.cs
- SocketElement.cs
- ForwardPositionQuery.cs
- Path.cs
- Screen.cs
- XmlBufferReader.cs
- DataSourceCacheDurationConverter.cs
- TargetException.cs
- WsdlBuildProvider.cs
- RegisteredHiddenField.cs
- TdsEnums.cs
- EventMap.cs
- UdpDiscoveryEndpoint.cs