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
- XmlParserContext.cs
- entityreference_tresulttype.cs
- FirewallWrapper.cs
- PolyQuadraticBezierSegment.cs
- SelectingProviderEventArgs.cs
- InteropExecutor.cs
- StronglyTypedResourceBuilder.cs
- DbProviderManifest.cs
- EventProxy.cs
- AnnotationResource.cs
- Operand.cs
- Schema.cs
- ExpandedWrapper.cs
- Exception.cs
- DataSource.cs
- CaseStatementProjectedSlot.cs
- ProviderMetadata.cs
- TreeViewBindingsEditorForm.cs
- RedBlackList.cs
- SoapExtensionTypeElement.cs
- MissingMethodException.cs
- MarkupCompiler.cs
- DelayedRegex.cs
- DefaultTextStore.cs
- BufferedGraphicsContext.cs
- PropertyCondition.cs
- OleDbTransaction.cs
- SecurityPolicySection.cs
- PartManifestEntry.cs
- BinaryObjectInfo.cs
- SafeBitVector32.cs
- AsymmetricSignatureDeformatter.cs
- ReflectEventDescriptor.cs
- ByteStreamMessageUtility.cs
- TrackingConditionCollection.cs
- DataGridItem.cs
- PropertyDescriptorCollection.cs
- SelectionProcessor.cs
- StringComparer.cs
- COMException.cs
- ParentQuery.cs
- DispatcherSynchronizationContext.cs
- RSAPKCS1SignatureDeformatter.cs
- SizeAnimationUsingKeyFrames.cs
- MenuCommands.cs
- EventlogProvider.cs
- QilInvokeLateBound.cs
- CompilerErrorCollection.cs
- XsdSchemaFileEditor.cs
- EntitySet.cs
- CallInfo.cs
- HelpKeywordAttribute.cs
- UpdateTranslator.cs
- ADMembershipProvider.cs
- ErrorWebPart.cs
- RenderData.cs
- StretchValidation.cs
- Brushes.cs
- CollectionEditor.cs
- DocobjHost.cs
- WebResourceAttribute.cs
- HierarchicalDataBoundControl.cs
- EdgeProfileValidation.cs
- UserControlDocumentDesigner.cs
- WebPartConnectionsDisconnectVerb.cs
- SqlExpander.cs
- OutputScope.cs
- ScriptingProfileServiceSection.cs
- loginstatus.cs
- StructuralCache.cs
- NetTcpBindingElement.cs
- DesignerToolboxInfo.cs
- DataMisalignedException.cs
- XmlSerializerAssemblyAttribute.cs
- AsyncResult.cs
- RequestStatusBarUpdateEventArgs.cs
- SafeNativeMethods.cs
- HwndSourceKeyboardInputSite.cs
- SelectionListComponentEditor.cs
- ObsoleteAttribute.cs
- Hash.cs
- MembershipSection.cs
- SecureConversationServiceCredential.cs
- BinaryNode.cs
- TextBlock.cs
- Screen.cs
- AttributeCollection.cs
- DesignerRegionCollection.cs
- ReadOnlyObservableCollection.cs
- SignedXml.cs
- Cursors.cs
- EventSetterHandlerConverter.cs
- CodeArrayCreateExpression.cs
- NavigationService.cs
- ReadContentAsBinaryHelper.cs
- Aggregates.cs
- COM2ComponentEditor.cs
- EntityKey.cs
- ControlCachePolicy.cs
- XmlSerializerVersionAttribute.cs