Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Metadata / Perspective.cs / 1 / Perspective.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....],[....] //--------------------------------------------------------------------- using System.Diagnostics; namespace System.Data.Metadata.Edm { using System.Collections.Generic; ////// Internal helper class for query /// internal abstract class Perspective { #region Constructors ////// Creates a new instance of perspective class so that query can work /// ignorant of all spaces /// /// runtime metadata container /// target dataspace for the perspective internal Perspective(MetadataWorkspace metadataWorkspace, DataSpace targetDataspace) { EntityUtil.CheckArgumentNull(metadataWorkspace, "metadataWorkspace"); m_metadataWorkspace = metadataWorkspace; m_targetDataspace = targetDataspace; } #endregion #region Fields private MetadataWorkspace m_metadataWorkspace; private DataSpace m_targetDataspace; #endregion #region Methods ////// Given the type in the target space and the member name in the source space, /// get the corresponding member in the target space /// For e.g. consider a Conceptual Type 'Foo' with a member 'Bar' and a CLR type /// 'XFoo' with a member 'YBar'. If one has a reference to Foo one can /// invoke GetMember(Foo,"YBar") to retrieve the member metadata for bar /// /// The type in the target perspective /// the name of the member in the source perspective /// Whether to do case-sensitive member look up or not /// returns the member in target space, if a match is found ///internal virtual bool TryGetMember(StructuralType type, String memberName, bool ignoreCase, out EdmMember outMember) { EntityUtil.CheckArgumentNull(type, "type"); EntityUtil.CheckStringArgument(memberName, "memberName"); outMember = null; // If a normal member is not present, check for navigation property with that name return type.Members.TryGetValue(memberName, ignoreCase, out outMember); } /// /// Returns the extent in the target space, for the given entity container /// /// name of the entity container in target space /// name of the extent /// Whether to do case-sensitive member look up or not /// extent in target space, if a match is found ///returns true, if a match is found otherwise returns false internal bool TryGetExtent(EntityContainer entityContainer, String extentName, bool ignoreCase, out EntitySetBase outSet) { // There are no entity container and extents in the OSpace. So there is no mapping // involved. Hence the name should be a valid name in the CSpace. return entityContainer.BaseEntitySets.TryGetValue(extentName, ignoreCase, out outSet); } ////// Get the default entity container /// returns null for any perspective other /// than the CLR perspective /// ///The default container internal virtual EntityContainer GetDefaultContainer() { return null; } ////// Get an entity container based upon the strong name of the container /// If no entity container is found, returns null, else returns the first one/// /// name of the entity container /// true for case-insensitive lookup /// returns the entity container if a match is found ///returns true if a match is found, otherwise false internal virtual bool TryGetEntityContainer(string name, bool ignoreCase, out EntityContainer entityContainer) { return MetadataWorkspace.TryGetEntityContainer(name, ignoreCase, TargetDataspace, out entityContainer); } ////// Gets the type with the given name in the target space /// /// full name of the type /// true for case-insensitive lookup /// TypeUsage for the type you are looking for ///returns true if a match is found, otherwise returns false internal abstract bool TryGetTypeByName(string fullName, bool ignoreCase, out TypeUsage typeUsage); ////// Returns the list of all the function with the given name /// /// name of the function /// namespace of the function /// whether to do a case-insensitive lookup or not ///internal System.Collections.ObjectModel.ReadOnlyCollection GetFunctions( string name, string namespaceName, bool ignoreCase) { EntityUtil.CheckStringArgument(name, "name"); EntityUtil.CheckStringArgument(namespaceName, "namespaceName"); string functionFullName = namespaceName + "." + name; System.Collections.ObjectModel.ReadOnlyCollection functionOverloads; // First lookup canonical functions EdmItemCollection edmItemCollection = (EdmItemCollection)m_metadataWorkspace.GetItemCollection(DataSpace.CSpace); functionOverloads = edmItemCollection.GetFunctions(functionFullName, ignoreCase); if (null == functionOverloads || 0 == functionOverloads.Count) { StoreItemCollection storeItemCollection = (StoreItemCollection)m_metadataWorkspace.GetItemCollection(DataSpace.SSpace); return storeItemCollection.GetCTypeFunctions(functionFullName, ignoreCase); } return functionOverloads; } /// /// Return the metadata workspace /// internal MetadataWorkspace MetadataWorkspace { get { return m_metadataWorkspace; } } ////// returns the primitive type for a given primitive type kind. /// /// /// ///internal virtual bool TryGetMappedPrimitiveType(PrimitiveTypeKind primitiveTypeKind, out PrimitiveType primitiveType) { primitiveType = m_metadataWorkspace.GetMappedPrimitiveType(primitiveTypeKind, DataSpace.CSpace); return (null != primitiveType); } // // This property will be needed to construct keys for transient types // /// /// Returns the target dataspace for this perspective /// internal DataSpace TargetDataspace { get { return m_targetDataspace; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....],[....] //--------------------------------------------------------------------- using System.Diagnostics; namespace System.Data.Metadata.Edm { using System.Collections.Generic; ////// Internal helper class for query /// internal abstract class Perspective { #region Constructors ////// Creates a new instance of perspective class so that query can work /// ignorant of all spaces /// /// runtime metadata container /// target dataspace for the perspective internal Perspective(MetadataWorkspace metadataWorkspace, DataSpace targetDataspace) { EntityUtil.CheckArgumentNull(metadataWorkspace, "metadataWorkspace"); m_metadataWorkspace = metadataWorkspace; m_targetDataspace = targetDataspace; } #endregion #region Fields private MetadataWorkspace m_metadataWorkspace; private DataSpace m_targetDataspace; #endregion #region Methods ////// Given the type in the target space and the member name in the source space, /// get the corresponding member in the target space /// For e.g. consider a Conceptual Type 'Foo' with a member 'Bar' and a CLR type /// 'XFoo' with a member 'YBar'. If one has a reference to Foo one can /// invoke GetMember(Foo,"YBar") to retrieve the member metadata for bar /// /// The type in the target perspective /// the name of the member in the source perspective /// Whether to do case-sensitive member look up or not /// returns the member in target space, if a match is found ///internal virtual bool TryGetMember(StructuralType type, String memberName, bool ignoreCase, out EdmMember outMember) { EntityUtil.CheckArgumentNull(type, "type"); EntityUtil.CheckStringArgument(memberName, "memberName"); outMember = null; // If a normal member is not present, check for navigation property with that name return type.Members.TryGetValue(memberName, ignoreCase, out outMember); } /// /// Returns the extent in the target space, for the given entity container /// /// name of the entity container in target space /// name of the extent /// Whether to do case-sensitive member look up or not /// extent in target space, if a match is found ///returns true, if a match is found otherwise returns false internal bool TryGetExtent(EntityContainer entityContainer, String extentName, bool ignoreCase, out EntitySetBase outSet) { // There are no entity container and extents in the OSpace. So there is no mapping // involved. Hence the name should be a valid name in the CSpace. return entityContainer.BaseEntitySets.TryGetValue(extentName, ignoreCase, out outSet); } ////// Get the default entity container /// returns null for any perspective other /// than the CLR perspective /// ///The default container internal virtual EntityContainer GetDefaultContainer() { return null; } ////// Get an entity container based upon the strong name of the container /// If no entity container is found, returns null, else returns the first one/// /// name of the entity container /// true for case-insensitive lookup /// returns the entity container if a match is found ///returns true if a match is found, otherwise false internal virtual bool TryGetEntityContainer(string name, bool ignoreCase, out EntityContainer entityContainer) { return MetadataWorkspace.TryGetEntityContainer(name, ignoreCase, TargetDataspace, out entityContainer); } ////// Gets the type with the given name in the target space /// /// full name of the type /// true for case-insensitive lookup /// TypeUsage for the type you are looking for ///returns true if a match is found, otherwise returns false internal abstract bool TryGetTypeByName(string fullName, bool ignoreCase, out TypeUsage typeUsage); ////// Returns the list of all the function with the given name /// /// name of the function /// namespace of the function /// whether to do a case-insensitive lookup or not ///internal System.Collections.ObjectModel.ReadOnlyCollection GetFunctions( string name, string namespaceName, bool ignoreCase) { EntityUtil.CheckStringArgument(name, "name"); EntityUtil.CheckStringArgument(namespaceName, "namespaceName"); string functionFullName = namespaceName + "." + name; System.Collections.ObjectModel.ReadOnlyCollection functionOverloads; // First lookup canonical functions EdmItemCollection edmItemCollection = (EdmItemCollection)m_metadataWorkspace.GetItemCollection(DataSpace.CSpace); functionOverloads = edmItemCollection.GetFunctions(functionFullName, ignoreCase); if (null == functionOverloads || 0 == functionOverloads.Count) { StoreItemCollection storeItemCollection = (StoreItemCollection)m_metadataWorkspace.GetItemCollection(DataSpace.SSpace); return storeItemCollection.GetCTypeFunctions(functionFullName, ignoreCase); } return functionOverloads; } /// /// Return the metadata workspace /// internal MetadataWorkspace MetadataWorkspace { get { return m_metadataWorkspace; } } ////// returns the primitive type for a given primitive type kind. /// /// /// ///internal virtual bool TryGetMappedPrimitiveType(PrimitiveTypeKind primitiveTypeKind, out PrimitiveType primitiveType) { primitiveType = m_metadataWorkspace.GetMappedPrimitiveType(primitiveTypeKind, DataSpace.CSpace); return (null != primitiveType); } // // This property will be needed to construct keys for transient types // /// /// Returns the target dataspace for this perspective /// internal DataSpace TargetDataspace { get { return m_targetDataspace; } } #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
- NameValueConfigurationElement.cs
- BitmapPalettes.cs
- ObjectDataSource.cs
- ScriptReference.cs
- HtmlInputHidden.cs
- UpDownEvent.cs
- BaseProcessor.cs
- ToolStripItemClickedEventArgs.cs
- Pen.cs
- CodeTypeConstructor.cs
- NativeMethods.cs
- SmiEventSink.cs
- AuthenticationConfig.cs
- EnumerableCollectionView.cs
- OdbcReferenceCollection.cs
- WindowsFormsEditorServiceHelper.cs
- SqlDataSourceFilteringEventArgs.cs
- InstanceKeyCollisionException.cs
- DataSourceCache.cs
- mediaclock.cs
- SiteMapNode.cs
- Barrier.cs
- FileDialog.cs
- SmiContextFactory.cs
- InkCollectionBehavior.cs
- ToolboxBitmapAttribute.cs
- ObjectQuery_EntitySqlExtensions.cs
- EntityProviderFactory.cs
- DrawingCollection.cs
- StateInitializationDesigner.cs
- CleanUpVirtualizedItemEventArgs.cs
- ImageListImage.cs
- _AutoWebProxyScriptHelper.cs
- WindowsStreamSecurityBindingElement.cs
- NewArray.cs
- BindingNavigator.cs
- RemoteWebConfigurationHostStream.cs
- BulletDecorator.cs
- DiffuseMaterial.cs
- MetaType.cs
- CreateUserWizardStep.cs
- DispatcherOperation.cs
- SqlCacheDependencyDatabase.cs
- webproxy.cs
- XmlLanguage.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- DispatchWrapper.cs
- WorkflowServiceHost.cs
- GrabHandleGlyph.cs
- HttpHandlerActionCollection.cs
- BamlLocalizabilityResolver.cs
- Brush.cs
- ProxyFragment.cs
- LexicalChunk.cs
- WebPartAuthorizationEventArgs.cs
- DataTableReaderListener.cs
- loginstatus.cs
- Context.cs
- ConnectionString.cs
- MailDefinition.cs
- ThicknessAnimationUsingKeyFrames.cs
- XmlSchemaInclude.cs
- WindowsSolidBrush.cs
- Msec.cs
- OleDbWrapper.cs
- PartialCachingControl.cs
- GlyphRunDrawing.cs
- IgnoreFileBuildProvider.cs
- HideDisabledControlAdapter.cs
- ALinqExpressionVisitor.cs
- DataGridTextBox.cs
- Item.cs
- CodeDirectoryCompiler.cs
- Command.cs
- HttpModuleActionCollection.cs
- StoragePropertyMapping.cs
- XmlSchemaChoice.cs
- FlowDocumentReaderAutomationPeer.cs
- SqlNotificationEventArgs.cs
- PathFigureCollectionValueSerializer.cs
- EditingMode.cs
- DataGridViewTextBoxColumn.cs
- ClickablePoint.cs
- UrlAuthFailedErrorFormatter.cs
- ListenerAdaptersInstallComponent.cs
- NamedPipeConnectionPool.cs
- AttributeConverter.cs
- ContainerUtilities.cs
- GlyphsSerializer.cs
- DrawListViewSubItemEventArgs.cs
- Menu.cs
- DataControlButton.cs
- SystemIcmpV4Statistics.cs
- HttpHandlerActionCollection.cs
- PointCollection.cs
- TriState.cs
- BufferedStream.cs
- HealthMonitoringSectionHelper.cs
- NotifyInputEventArgs.cs
- DataGridDefaultColumnWidthTypeConverter.cs