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 / Structures / MemberPathMap.cs / 1 / MemberPathMap.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data.Common.Utils; namespace System.Data.Mapping.ViewGeneration.Structures { /// Maps member paths to a dense space of integers, e.g., so that one can /// store memberpaths in arrays and use array indexes for easy and /// efficient handling internal class MemberPathMap : MemberPathMapBase { #region Constructor // effects: Creates an empty map internal MemberPathMap() { m_indexMap = new Dictionary(MemberPath.EqualityComparer); m_members = new List (); } #endregion #region Fields // A dictionary to get us from paths to indexes and an array for the // other way around private Dictionary m_indexMap; private List m_members; #endregion #region MemberPathMapBase Properties // effects: See MemberPathMapBase.Count internal override int Count { get {return m_members.Count; } } // effects: See MemberPathMapBase.indexer internal override MemberPath this[int index] { get { return m_members[index]; } } // effects: Returns the indexes of the key slots corresponding to // fields in this for which IsPartOfKey is true internal override IEnumerable KeySlots { get { List result = new List (); for (int slotNum = 0; slotNum < Count; slotNum++) { // We pass for numboolslots since we know that this is not a // bool slot if (ProjectedSlot.IsKeySlot(slotNum, this, 0)) { result.Add(slotNum); } } return result; } } // effects: returns an enumeration of all members internal override IEnumerable Members { get { return m_members; } } #endregion #region MemberPathMapBase Methods // effects: See MemberPathMapBase.IndexOf internal override int IndexOf(MemberPath member) { int index; if (m_indexMap.TryGetValue(member, out index)) { return index; } else { return -1; } } #endregion #region Other Methods // effects: If an index already exists for member, this is a // noop. Else creates the next index available for member and returns it internal int CreateIndex(MemberPath member) { int index; if (false == m_indexMap.TryGetValue(member, out index)) { index = m_indexMap.Count; m_indexMap[member] = index; m_members.Add(member); } return index; } internal override void ToCompactString(StringBuilder builder) { builder.Append('<'); StringUtil.ToCommaSeparatedString(builder, m_members); builder.Append('>'); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Text; using System.Data.Common.Utils; namespace System.Data.Mapping.ViewGeneration.Structures { /// Maps member paths to a dense space of integers, e.g., so that one can /// store memberpaths in arrays and use array indexes for easy and /// efficient handling internal class MemberPathMap : MemberPathMapBase { #region Constructor // effects: Creates an empty map internal MemberPathMap() { m_indexMap = new Dictionary(MemberPath.EqualityComparer); m_members = new List (); } #endregion #region Fields // A dictionary to get us from paths to indexes and an array for the // other way around private Dictionary m_indexMap; private List m_members; #endregion #region MemberPathMapBase Properties // effects: See MemberPathMapBase.Count internal override int Count { get {return m_members.Count; } } // effects: See MemberPathMapBase.indexer internal override MemberPath this[int index] { get { return m_members[index]; } } // effects: Returns the indexes of the key slots corresponding to // fields in this for which IsPartOfKey is true internal override IEnumerable KeySlots { get { List result = new List (); for (int slotNum = 0; slotNum < Count; slotNum++) { // We pass for numboolslots since we know that this is not a // bool slot if (ProjectedSlot.IsKeySlot(slotNum, this, 0)) { result.Add(slotNum); } } return result; } } // effects: returns an enumeration of all members internal override IEnumerable Members { get { return m_members; } } #endregion #region MemberPathMapBase Methods // effects: See MemberPathMapBase.IndexOf internal override int IndexOf(MemberPath member) { int index; if (m_indexMap.TryGetValue(member, out index)) { return index; } else { return -1; } } #endregion #region Other Methods // effects: If an index already exists for member, this is a // noop. Else creates the next index available for member and returns it internal int CreateIndex(MemberPath member) { int index; if (false == m_indexMap.TryGetValue(member, out index)) { index = m_indexMap.Count; m_indexMap[member] = index; m_members.Add(member); } return index; } internal override void ToCompactString(StringBuilder builder) { builder.Append('<'); StringUtil.ToCommaSeparatedString(builder, m_members); builder.Append('>'); } #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
- MenuStrip.cs
- ChtmlPhoneCallAdapter.cs
- SByteStorage.cs
- ScriptingAuthenticationServiceSection.cs
- RIPEMD160.cs
- nulltextnavigator.cs
- SmtpClient.cs
- DecimalAnimationBase.cs
- SerialPinChanges.cs
- OleDbInfoMessageEvent.cs
- SetterBase.cs
- XmlNamespaceManager.cs
- SqlGenerator.cs
- ExpressionBuilder.cs
- BackoffTimeoutHelper.cs
- DataServiceException.cs
- DatePicker.cs
- Label.cs
- NestedContainer.cs
- XmlSchemaObject.cs
- FontSizeConverter.cs
- DeclarativeCatalogPart.cs
- HwndAppCommandInputProvider.cs
- MailSettingsSection.cs
- PageClientProxyGenerator.cs
- DiscoveryDocumentSearchPattern.cs
- DataObject.cs
- followingsibling.cs
- SecurityException.cs
- EntityProviderFactory.cs
- RijndaelManagedTransform.cs
- PrimitiveCodeDomSerializer.cs
- MenuItem.cs
- ErrorLog.cs
- StringAnimationUsingKeyFrames.cs
- ErrorInfoXmlDocument.cs
- BasicExpandProvider.cs
- RootBuilder.cs
- PixelShader.cs
- GetWinFXPath.cs
- ImageConverter.cs
- UDPClient.cs
- FragmentQueryKB.cs
- TextRangeProviderWrapper.cs
- AnnotationComponentChooser.cs
- FocusTracker.cs
- FileLevelControlBuilderAttribute.cs
- PrintController.cs
- XmlSchemaAnnotated.cs
- StyleSelector.cs
- _AuthenticationState.cs
- VerificationAttribute.cs
- SamlConditions.cs
- ObjectDataSourceFilteringEventArgs.cs
- WebPartUserCapability.cs
- BaseParaClient.cs
- AsyncPostBackTrigger.cs
- MULTI_QI.cs
- PageAsyncTaskManager.cs
- SqlBulkCopy.cs
- ImageFormat.cs
- DropShadowBitmapEffect.cs
- ProjectedSlot.cs
- TabPanel.cs
- ReadOnlyCollection.cs
- SiteMapSection.cs
- HttpHandlersSection.cs
- PolicyChain.cs
- TableRow.cs
- WebRequestModulesSection.cs
- DoubleLink.cs
- MorphHelper.cs
- LongValidator.cs
- DbParameterHelper.cs
- OutOfProcStateClientManager.cs
- OrderPreservingSpoolingTask.cs
- QilFactory.cs
- SecureStringHasher.cs
- SqlDataSourceQueryConverter.cs
- GenericAuthenticationEventArgs.cs
- TagPrefixCollection.cs
- DashStyle.cs
- ImmutableCollection.cs
- EndpointAddressAugust2004.cs
- NameValuePair.cs
- UITypeEditor.cs
- WindowPatternIdentifiers.cs
- ColumnMapTranslator.cs
- SplineQuaternionKeyFrame.cs
- LogicalExpressionTypeConverter.cs
- ReliabilityContractAttribute.cs
- TreeNodeStyleCollection.cs
- UrlPropertyAttribute.cs
- MethodRental.cs
- EdmComplexTypeAttribute.cs
- WindowInteropHelper.cs
- XmlUrlResolver.cs
- SQLDecimal.cs
- SqlDataSourceStatusEventArgs.cs
- Mutex.cs