Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / FacetEnabledSchemaElement.cs / 1305376 / FacetEnabledSchemaElement.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Metadata.Edm; using System.Diagnostics; using System.Xml; namespace System.Data.EntityModel.SchemaObjectModel { abstract class FacetEnabledSchemaElement : SchemaElement { protected SchemaType _type = null; protected string _unresolvedType = null; protected TypeUsageBuilder _typeUsageBuilder; #region public properties internal new Function ParentElement { get { return base.ParentElement as Function; } } internal SchemaType Type { get { return _type; } } internal virtual TypeUsage TypeUsage { get { return _typeUsageBuilder.TypeUsage; } } internal bool HasUserDefinedFacets { get { return _typeUsageBuilder.HasUserDefinedFacets; } } #endregion #region Internal Properties internal string UnresolvedType { get { return _unresolvedType; } set { _unresolvedType = value; } } #endregion #region Public Methods ////// /// /// internal FacetEnabledSchemaElement(Function parentElement) : base(parentElement) { } internal FacetEnabledSchemaElement(SchemaElement parentElement) : base(parentElement) { } #endregion #region Internal Methods internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); Debug.Assert(this.Type == null, "This must be resolved exactly once"); if (Schema.ResolveTypeName(this, UnresolvedType, out _type)) { if (!(_type is ScalarType) && Schema.DataModel != SchemaDataModelOption.EntityDataModel) { AddError(ErrorCode.FunctionWithNonScalarTypeNotSupported, EdmSchemaErrorSeverity.Error, this, System.Data.Entity.Strings.FunctionWithNonScalarTypeNotSupported(_type.FQName, this.ParentElement.FQName)); return; } if (Schema.DataModel == SchemaDataModelOption.ProviderManifestModel && _typeUsageBuilder.HasUserDefinedFacets) { bool isInProviderManifest = Schema.DataModel == SchemaDataModelOption.ProviderManifestModel; _typeUsageBuilder.ValidateAndSetTypeUsage((ScalarType)_type, !isInProviderManifest); } } } internal void ValidateAndSetTypeUsage(ScalarType scalar) { _typeUsageBuilder.ValidateAndSetTypeUsage(scalar, false); } #endregion protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } else if (_typeUsageBuilder.HandleAttribute(reader)) { return true; } return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Metadata.Edm; using System.Diagnostics; using System.Xml; namespace System.Data.EntityModel.SchemaObjectModel { abstract class FacetEnabledSchemaElement : SchemaElement { protected SchemaType _type = null; protected string _unresolvedType = null; protected TypeUsageBuilder _typeUsageBuilder; #region public properties internal new Function ParentElement { get { return base.ParentElement as Function; } } internal SchemaType Type { get { return _type; } } internal virtual TypeUsage TypeUsage { get { return _typeUsageBuilder.TypeUsage; } } internal bool HasUserDefinedFacets { get { return _typeUsageBuilder.HasUserDefinedFacets; } } #endregion #region Internal Properties internal string UnresolvedType { get { return _unresolvedType; } set { _unresolvedType = value; } } #endregion #region Public Methods ////// /// /// internal FacetEnabledSchemaElement(Function parentElement) : base(parentElement) { } internal FacetEnabledSchemaElement(SchemaElement parentElement) : base(parentElement) { } #endregion #region Internal Methods internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); Debug.Assert(this.Type == null, "This must be resolved exactly once"); if (Schema.ResolveTypeName(this, UnresolvedType, out _type)) { if (!(_type is ScalarType) && Schema.DataModel != SchemaDataModelOption.EntityDataModel) { AddError(ErrorCode.FunctionWithNonScalarTypeNotSupported, EdmSchemaErrorSeverity.Error, this, System.Data.Entity.Strings.FunctionWithNonScalarTypeNotSupported(_type.FQName, this.ParentElement.FQName)); return; } if (Schema.DataModel == SchemaDataModelOption.ProviderManifestModel && _typeUsageBuilder.HasUserDefinedFacets) { bool isInProviderManifest = Schema.DataModel == SchemaDataModelOption.ProviderManifestModel; _typeUsageBuilder.ValidateAndSetTypeUsage((ScalarType)_type, !isInProviderManifest); } } } internal void ValidateAndSetTypeUsage(ScalarType scalar) { _typeUsageBuilder.ValidateAndSetTypeUsage(scalar, false); } #endregion protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } else if (_typeUsageBuilder.HandleAttribute(reader)) { return true; } return false; } } } // 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
- GridViewAutomationPeer.cs
- WindowsFormsLinkLabel.cs
- StringValidatorAttribute.cs
- TypeDefinition.cs
- DeclarativeConditionsCollection.cs
- ListViewItem.cs
- OracleConnectionFactory.cs
- MSAAWinEventWrap.cs
- WpfSharedBamlSchemaContext.cs
- IDispatchConstantAttribute.cs
- XPathDescendantIterator.cs
- ImageField.cs
- TextDecorations.cs
- CssStyleCollection.cs
- HTTPNotFoundHandler.cs
- DbProviderFactory.cs
- TableRowCollection.cs
- MetadataArtifactLoaderFile.cs
- TraceHandlerErrorFormatter.cs
- MasterPage.cs
- FrameworkTextComposition.cs
- GridViewCommandEventArgs.cs
- Popup.cs
- Table.cs
- WebConvert.cs
- ExpressionReplacer.cs
- CurrencyWrapper.cs
- ProtocolsConfigurationEntry.cs
- GlyphRun.cs
- OleDbConnection.cs
- TranslateTransform.cs
- SchemaTableOptionalColumn.cs
- EncryptedType.cs
- ChangesetResponse.cs
- PointHitTestParameters.cs
- TreeNodeSelectionProcessor.cs
- LocatorBase.cs
- IResourceProvider.cs
- Int32Rect.cs
- ParameterEditorUserControl.cs
- Nullable.cs
- BidOverLoads.cs
- SoapReflectionImporter.cs
- SqlDataSourceStatusEventArgs.cs
- IResourceProvider.cs
- DataGridViewBand.cs
- SqlDataSource.cs
- OleDbEnumerator.cs
- IConvertible.cs
- AppLevelCompilationSectionCache.cs
- SqlParameter.cs
- File.cs
- IdentityReference.cs
- WebPartAddingEventArgs.cs
- ExtendedPropertyDescriptor.cs
- MessageQueueInstaller.cs
- HttpProcessUtility.cs
- HttpProfileGroupBase.cs
- InputElement.cs
- TimelineCollection.cs
- IntegrationExceptionEventArgs.cs
- PropertiesTab.cs
- BaseServiceProvider.cs
- ValidationRuleCollection.cs
- TagPrefixAttribute.cs
- InvalidPrinterException.cs
- EnterpriseServicesHelper.cs
- ScriptingWebServicesSectionGroup.cs
- KeyValueInternalCollection.cs
- ContainerFilterService.cs
- TypedDataSetSchemaImporterExtension.cs
- BufferedOutputStream.cs
- SmtpLoginAuthenticationModule.cs
- Version.cs
- DotExpr.cs
- BindingList.cs
- FormsAuthenticationUserCollection.cs
- TextContainerChangeEventArgs.cs
- SchemaImporter.cs
- COM2EnumConverter.cs
- X509AsymmetricSecurityKey.cs
- DisplayInformation.cs
- Misc.cs
- WindowsGraphics2.cs
- XmlSerializerAssemblyAttribute.cs
- SoapServerMessage.cs
- ChangeDirector.cs
- TypeDescriptorContext.cs
- ObjectStateManagerMetadata.cs
- RSACryptoServiceProvider.cs
- SecurityChannel.cs
- SynchronizingStream.cs
- PeerNameResolver.cs
- MouseBinding.cs
- FloaterParagraph.cs
- ListControl.cs
- HttpHandlerAction.cs
- AppLevelCompilationSectionCache.cs
- Exception.cs
- WindowsTitleBar.cs