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
- GridViewRowPresenterBase.cs
- SByteStorage.cs
- FormsAuthenticationConfiguration.cs
- SectionXmlInfo.cs
- ResourceManagerWrapper.cs
- ProtocolInformationWriter.cs
- DateTimeConverter.cs
- CodeDelegateInvokeExpression.cs
- DataKey.cs
- OdbcUtils.cs
- FlowLayout.cs
- DataColumnCollection.cs
- CachedRequestParams.cs
- QilIterator.cs
- NetCodeGroup.cs
- TableRowGroup.cs
- RelationshipWrapper.cs
- InvokeGenerator.cs
- MSG.cs
- UnicodeEncoding.cs
- HttpCapabilitiesSectionHandler.cs
- CodeArrayCreateExpression.cs
- OdbcConnectionStringbuilder.cs
- AuthenticationModuleElementCollection.cs
- EdmEntityTypeAttribute.cs
- ColorConvertedBitmap.cs
- StateWorkerRequest.cs
- CharEntityEncoderFallback.cs
- HtmlElement.cs
- ThrowHelper.cs
- DataGridViewTextBoxCell.cs
- SafePEFileHandle.cs
- RowVisual.cs
- WebSysDefaultValueAttribute.cs
- DataGridSortCommandEventArgs.cs
- ExecutionContext.cs
- RegexCapture.cs
- ProcessHostFactoryHelper.cs
- UTF32Encoding.cs
- Rethrow.cs
- PageSetupDialog.cs
- ScaleTransform.cs
- SoapFaultCodes.cs
- SqlRowUpdatedEvent.cs
- TTSEngineTypes.cs
- DeflateStream.cs
- EntityStoreSchemaGenerator.cs
- StateChangeEvent.cs
- ListViewDeletedEventArgs.cs
- SystemResourceHost.cs
- XmlElementCollection.cs
- InternalBufferOverflowException.cs
- ContractMapping.cs
- TextDpi.cs
- MarkupExtensionParser.cs
- StructuredTypeEmitter.cs
- FileSystemInfo.cs
- ISessionStateStore.cs
- CodeValidator.cs
- BackEase.cs
- WebControlToolBoxItem.cs
- ObjectView.cs
- ScrollEvent.cs
- XmlSchemaInclude.cs
- Itemizer.cs
- isolationinterop.cs
- ServiceNameCollection.cs
- EntityDataSourceConfigureObjectContext.cs
- AsyncDataRequest.cs
- FormParameter.cs
- ImageConverter.cs
- GroupDescription.cs
- XamlToRtfWriter.cs
- XmlSchemaDocumentation.cs
- OleStrCAMarshaler.cs
- Canvas.cs
- CatalogZone.cs
- Point3DValueSerializer.cs
- NativeBuffer.cs
- PartialCachingControl.cs
- IArgumentProvider.cs
- PointAnimationClockResource.cs
- CompositeActivityTypeDescriptorProvider.cs
- WorkflowViewElement.cs
- ScrollViewer.cs
- WebPartAddingEventArgs.cs
- GatewayIPAddressInformationCollection.cs
- ResourcePool.cs
- CallInfo.cs
- CheckedListBox.cs
- ExtenderProvidedPropertyAttribute.cs
- StorageTypeMapping.cs
- TextSpanModifier.cs
- MultilineStringConverter.cs
- Base64Stream.cs
- NegotiateStream.cs
- XhtmlBasicListAdapter.cs
- ReverseQueryOperator.cs
- ToolStripSystemRenderer.cs
- PasswordRecoveryDesigner.cs