Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Common / internal / materialization / shaperfactory.cs / 3 / shaperfactory.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Data.Common.QueryCache; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Objects.Internal; using System.Data.Query.InternalTrees; using System.Diagnostics; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { internal static ShaperFactory Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { ShaperFactoryCreator creator = (ShaperFactoryCreator)Activator.CreateInstance(typeof(TypedShaperFactoryCreator<>).MakeGenericType(elementType)); return creator.TypedCreate(cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } private abstract class ShaperFactoryCreator { internal abstract ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer); } private sealed class TypedShaperFactoryCreator: ShaperFactoryCreator { public TypedShaperFactoryCreator() {} internal override ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { return Translator.TranslateColumnMap (cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } } } /// /// Typed ShaperFactory /// internal class ShaperFactory: ShaperFactory { private readonly int _stateCount; private readonly CoordinatorFactory _rootCoordinatorFactory; private readonly Action _checkPermissions; private readonly MergeOption _mergeOption; internal ShaperFactory(int stateCount, CoordinatorFactory rootCoordinatorFactory, Action checkPermissions, MergeOption mergeOption) { _stateCount = stateCount; _rootCoordinatorFactory = rootCoordinatorFactory; _checkPermissions = checkPermissions; _mergeOption = mergeOption; } /// /// Factory method to create the Shaper for Object Layer queries. /// internal ShaperCreate(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption) { Debug.Assert(mergeOption == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, context, workspace, mergeOption, _stateCount, _rootCoordinatorFactory, _checkPermissions); } /// /// Factory method to create the Shaper for Value Layer queries. /// internal ShaperCreate(DbDataReader reader, MetadataWorkspace workspace) { Debug.Assert(MergeOption.NoTracking == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, null, workspace, MergeOption.NoTracking, _stateCount, _rootCoordinatorFactory, _checkPermissions); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System.Data.Common.QueryCache; using System.Data.Metadata.Edm; using System.Data.Objects; using System.Data.Objects.Internal; using System.Data.Query.InternalTrees; using System.Diagnostics; namespace System.Data.Common.Internal.Materialization { ////// An immutable type used to generate Shaper instances. /// internal abstract class ShaperFactory { internal static ShaperFactory Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { ShaperFactoryCreator creator = (ShaperFactoryCreator)Activator.CreateInstance(typeof(TypedShaperFactoryCreator<>).MakeGenericType(elementType)); return creator.TypedCreate(cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } private abstract class ShaperFactoryCreator { internal abstract ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer); } private sealed class TypedShaperFactoryCreator: ShaperFactoryCreator { public TypedShaperFactoryCreator() {} internal override ShaperFactory TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, bool valueLayer) { return Translator.TranslateColumnMap (cacheManager, columnMap, metadata, spanInfo, mergeOption, valueLayer); } } } /// /// Typed ShaperFactory /// internal class ShaperFactory: ShaperFactory { private readonly int _stateCount; private readonly CoordinatorFactory _rootCoordinatorFactory; private readonly Action _checkPermissions; private readonly MergeOption _mergeOption; internal ShaperFactory(int stateCount, CoordinatorFactory rootCoordinatorFactory, Action checkPermissions, MergeOption mergeOption) { _stateCount = stateCount; _rootCoordinatorFactory = rootCoordinatorFactory; _checkPermissions = checkPermissions; _mergeOption = mergeOption; } /// /// Factory method to create the Shaper for Object Layer queries. /// internal ShaperCreate(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption) { Debug.Assert(mergeOption == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, context, workspace, mergeOption, _stateCount, _rootCoordinatorFactory, _checkPermissions); } /// /// Factory method to create the Shaper for Value Layer queries. /// internal ShaperCreate(DbDataReader reader, MetadataWorkspace workspace) { Debug.Assert(MergeOption.NoTracking == _mergeOption, "executing a query with a different mergeOption than was used to compile the delegate"); return new Shaper (reader, null, workspace, MergeOption.NoTracking, _stateCount, _rootCoordinatorFactory, _checkPermissions); } } } // 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
- ProfileParameter.cs
- MenuItemStyle.cs
- CapabilitiesPattern.cs
- NoClickablePointException.cs
- DateTimePickerDesigner.cs
- SQLGuid.cs
- Parameter.cs
- ServiceOperationHelpers.cs
- FileIOPermission.cs
- PopupRoot.cs
- Condition.cs
- DataGridLinkButton.cs
- FrameworkContentElement.cs
- SQLDecimal.cs
- ElementHostAutomationPeer.cs
- PackageDigitalSignature.cs
- ImageField.cs
- WeakEventTable.cs
- TrailingSpaceComparer.cs
- ToolBarButton.cs
- DataGridViewUtilities.cs
- Variant.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- ListenerAdaptersInstallComponent.cs
- DataGridGeneralPage.cs
- ProgressBar.cs
- BooleanAnimationBase.cs
- HttpRequestTraceRecord.cs
- ValueOfAction.cs
- GlobalProxySelection.cs
- NameSpaceExtractor.cs
- WebResourceUtil.cs
- _ListenerAsyncResult.cs
- DataGridToolTip.cs
- BuilderElements.cs
- WebBrowsableAttribute.cs
- WriteableBitmap.cs
- PersistenceTypeAttribute.cs
- SettingsAttributeDictionary.cs
- TileModeValidation.cs
- AuthenticationConfig.cs
- StrongTypingException.cs
- RijndaelManagedTransform.cs
- MemberNameValidator.cs
- DisposableCollectionWrapper.cs
- AssertSection.cs
- ManifestBasedResourceGroveler.cs
- ActivationArguments.cs
- CreateUserErrorEventArgs.cs
- TextClipboardData.cs
- DesignTable.cs
- SqlXmlStorage.cs
- OnOperation.cs
- SafeLocalAllocation.cs
- ShapingEngine.cs
- WinInet.cs
- ClipboardData.cs
- FactoryRecord.cs
- Block.cs
- InvalidContentTypeException.cs
- X509Chain.cs
- LinkedResourceCollection.cs
- NamespaceEmitter.cs
- XPathSelectionIterator.cs
- Qualifier.cs
- ReliableMessagingVersion.cs
- Expressions.cs
- StorageConditionPropertyMapping.cs
- LessThan.cs
- ClockController.cs
- FormatConvertedBitmap.cs
- TrustManagerMoreInformation.cs
- JournalEntryStack.cs
- Pair.cs
- PageCatalogPart.cs
- ValidationSummary.cs
- TargetException.cs
- Automation.cs
- DataObjectAttribute.cs
- Native.cs
- RemotingHelper.cs
- XmlUrlEditor.cs
- OdbcReferenceCollection.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ConfigurationStrings.cs
- PaginationProgressEventArgs.cs
- TimeZoneInfo.cs
- ContentHostHelper.cs
- HttpHandlerActionCollection.cs
- SelectedCellsChangedEventArgs.cs
- MediaTimeline.cs
- OdbcHandle.cs
- TypedReference.cs
- ToolStripPanel.cs
- DoubleStorage.cs
- InvokeGenerator.cs
- Cloud.cs
- DeleteMemberBinder.cs
- DataServiceOperationContext.cs
- SchemaEntity.cs