Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / MemberPathMap.cs / 2 / 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
- FixedDocumentSequencePaginator.cs
- TTSEngineTypes.cs
- PathFigureCollectionValueSerializer.cs
- PanelDesigner.cs
- TemplateLookupAction.cs
- ConfigXmlComment.cs
- ReferenceEqualityComparer.cs
- CodeExporter.cs
- WizardPanelChangingEventArgs.cs
- SizeAnimationBase.cs
- IteratorDescriptor.cs
- DropDownButton.cs
- SettingsPropertyIsReadOnlyException.cs
- PersonalizationProviderCollection.cs
- ConfigurationHelpers.cs
- ConversionContext.cs
- NamespaceCollection.cs
- HwndAppCommandInputProvider.cs
- Effect.cs
- RangeBaseAutomationPeer.cs
- AdPostCacheSubstitution.cs
- securitymgrsite.cs
- RegexNode.cs
- EventLogPermissionEntryCollection.cs
- SplineKeyFrames.cs
- Assembly.cs
- WebPartDescription.cs
- SHA1Managed.cs
- XmlAutoDetectWriter.cs
- ImageMap.cs
- GridViewColumnCollectionChangedEventArgs.cs
- ADMembershipUser.cs
- PathTooLongException.cs
- WebConfigurationFileMap.cs
- DriveInfo.cs
- ClassicBorderDecorator.cs
- TreeNodeStyleCollection.cs
- SocketElement.cs
- ObjectRef.cs
- SqlProfileProvider.cs
- ProcessModelSection.cs
- PageCache.cs
- DecoratedNameAttribute.cs
- XmlAutoDetectWriter.cs
- Win32Exception.cs
- _FtpControlStream.cs
- CaseInsensitiveOrdinalStringComparer.cs
- OpCellTreeNode.cs
- GeometryGroup.cs
- LocalizationComments.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- WorkflowView.cs
- SystemResourceKey.cs
- OdbcConnectionPoolProviderInfo.cs
- HtmlMobileTextWriter.cs
- DataGridViewBindingCompleteEventArgs.cs
- TreeViewTemplateSelector.cs
- RequestBringIntoViewEventArgs.cs
- WindowsBrush.cs
- RuleValidation.cs
- XmlILStorageConverter.cs
- HtmlElementEventArgs.cs
- DependencySource.cs
- _SSPISessionCache.cs
- ScrollEvent.cs
- MdImport.cs
- CodeCatchClauseCollection.cs
- LifetimeServices.cs
- PrintDocument.cs
- InternalRelationshipCollection.cs
- DoubleCollectionConverter.cs
- DrawingDrawingContext.cs
- WebPartsPersonalizationAuthorization.cs
- TextBoxBase.cs
- DataGridHeaderBorder.cs
- AncillaryOps.cs
- DataGridViewCellLinkedList.cs
- FormsAuthenticationEventArgs.cs
- TargetException.cs
- BatchWriter.cs
- DataView.cs
- ContextStack.cs
- XNameConverter.cs
- ArrayElementGridEntry.cs
- LogLogRecord.cs
- EditCommandColumn.cs
- ComponentResourceKey.cs
- TypedTableBase.cs
- CodeVariableReferenceExpression.cs
- ClientRoleProvider.cs
- CompressStream.cs
- InternalConfigRoot.cs
- IteratorDescriptor.cs
- CacheOutputQuery.cs
- TrustManagerPromptUI.cs
- RoleManagerSection.cs
- ServiceTimeoutsElement.cs
- DataTableMapping.cs
- DocumentGridContextMenu.cs
- EventPropertyMap.cs