Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- GradientBrush.cs
- FatalException.cs
- VerbConverter.cs
- SwitchElementsCollection.cs
- SendSecurityHeader.cs
- CapabilitiesUse.cs
- Conditional.cs
- Processor.cs
- WebPartCollection.cs
- CustomBindingCollectionElement.cs
- PrefixQName.cs
- SingleAnimationUsingKeyFrames.cs
- WebContentFormatHelper.cs
- VirtualPathProvider.cs
- RankException.cs
- ResponseStream.cs
- BufferBuilder.cs
- XmlIterators.cs
- MobileResource.cs
- InvariantComparer.cs
- ConstructorBuilder.cs
- PropertyItemInternal.cs
- ProviderCommandInfoUtils.cs
- TextSearch.cs
- XmlReaderSettings.cs
- ReceiveSecurityHeaderEntry.cs
- Convert.cs
- LineServicesCallbacks.cs
- SafeRightsManagementEnvironmentHandle.cs
- autovalidator.cs
- XmlTextReaderImplHelpers.cs
- CreateUserErrorEventArgs.cs
- GeneralTransform3DCollection.cs
- GridItemProviderWrapper.cs
- EastAsianLunisolarCalendar.cs
- GeneralTransform3DTo2DTo3D.cs
- DesignerActionGlyph.cs
- EndEvent.cs
- SqlAggregateChecker.cs
- securitycriticaldataformultiplegetandset.cs
- ConfigurationErrorsException.cs
- TextBounds.cs
- ExecutionContext.cs
- VisualStyleElement.cs
- CommandBinding.cs
- AsymmetricAlgorithm.cs
- SchemaInfo.cs
- RijndaelManaged.cs
- DataServiceQueryOfT.cs
- Repeater.cs
- StylusSystemGestureEventArgs.cs
- MsmqIntegrationReceiveParameters.cs
- XsdDataContractImporter.cs
- LayoutSettings.cs
- SolidBrush.cs
- OrderedDictionaryStateHelper.cs
- ApplicationHost.cs
- RegistrationServices.cs
- Debug.cs
- WebEncodingValidatorAttribute.cs
- __ComObject.cs
- ConfigurationElementProperty.cs
- SelectionWordBreaker.cs
- System.Data_BID.cs
- CalendarAutoFormat.cs
- MultipartIdentifier.cs
- WebResponse.cs
- SchemaImporterExtensionElement.cs
- Tile.cs
- WebPartHeaderCloseVerb.cs
- StateWorkerRequest.cs
- PermissionListSet.cs
- ListContractAdapter.cs
- Geometry3D.cs
- SerializationInfo.cs
- SerializationInfoEnumerator.cs
- Memoizer.cs
- ReflectionUtil.cs
- FilterFactory.cs
- _SslStream.cs
- Point3DAnimation.cs
- MultipartContentParser.cs
- LocatorBase.cs
- DataStreamFromComStream.cs
- ReferenceService.cs
- MemberDescriptor.cs
- ApplicationBuildProvider.cs
- MatrixKeyFrameCollection.cs
- TraceInternal.cs
- Int16AnimationBase.cs
- PersonalizationDictionary.cs
- BinaryMethodMessage.cs
- HotSpotCollection.cs
- UIHelper.cs
- BitmapPalettes.cs
- DocobjHost.cs
- RTTrackingProfile.cs
- BCLDebug.cs
- DocumentPageViewAutomationPeer.cs
- NameValueCollection.cs