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
- LinkLabelLinkClickedEvent.cs
- OLEDB_Util.cs
- SafeRightsManagementEnvironmentHandle.cs
- ClientCultureInfo.cs
- TableLayout.cs
- Baml2006ReaderSettings.cs
- JoinCqlBlock.cs
- BatchWriter.cs
- QuotaThrottle.cs
- DocumentReferenceCollection.cs
- ConsumerConnectionPointCollection.cs
- MatchingStyle.cs
- DelegatedStream.cs
- ExclusiveTcpListener.cs
- MergablePropertyAttribute.cs
- ServiceOperationListItem.cs
- WindowPattern.cs
- CqlWriter.cs
- ParserHooks.cs
- GlyphElement.cs
- UriScheme.cs
- XamlWriterExtensions.cs
- GridViewUpdatedEventArgs.cs
- OdbcConnectionOpen.cs
- WindowsFormsHelpers.cs
- Stroke2.cs
- DataGridColumnEventArgs.cs
- DataGridViewAutoSizeModeEventArgs.cs
- RuntimeCompatibilityAttribute.cs
- Label.cs
- DataGridViewCellEventArgs.cs
- PagesSection.cs
- HMACMD5.cs
- Inflater.cs
- SystemKeyConverter.cs
- TextTreeUndoUnit.cs
- XmlLanguage.cs
- GeometryCollection.cs
- QueryTask.cs
- BitmapCodecInfoInternal.cs
- MetafileHeaderWmf.cs
- RoleService.cs
- FloaterParagraph.cs
- wgx_commands.cs
- WebConfigurationFileMap.cs
- ContentFileHelper.cs
- TextTreeFixupNode.cs
- ETagAttribute.cs
- RSAOAEPKeyExchangeFormatter.cs
- ShapeTypeface.cs
- IntegerCollectionEditor.cs
- ItemCollection.cs
- ProcessManager.cs
- ToolStripItemRenderEventArgs.cs
- DllNotFoundException.cs
- PolicyValidationException.cs
- OracleTransaction.cs
- SapiRecoContext.cs
- MethodBuilderInstantiation.cs
- CreateUserWizardStep.cs
- RpcCryptoContext.cs
- FormsAuthenticationTicket.cs
- SourceFileBuildProvider.cs
- WorkflowRuntimeService.cs
- TextReturnReader.cs
- SnapLine.cs
- XmlC14NWriter.cs
- RegularExpressionValidator.cs
- TargetControlTypeCache.cs
- EncoderNLS.cs
- XslTransform.cs
- StateMachine.cs
- Utility.cs
- TransformConverter.cs
- MouseEvent.cs
- PointLightBase.cs
- SocketPermission.cs
- ValidatorCompatibilityHelper.cs
- InternalPermissions.cs
- OTFRasterizer.cs
- ValidateNames.cs
- OleDbStruct.cs
- cache.cs
- _IPv6Address.cs
- FrameworkContentElement.cs
- TextReader.cs
- precedingquery.cs
- WebReferencesBuildProvider.cs
- XmlSchemaNotation.cs
- WorkerRequest.cs
- _emptywebproxy.cs
- RegexCode.cs
- SQLDateTimeStorage.cs
- TemplateControlCodeDomTreeGenerator.cs
- MouseGestureValueSerializer.cs
- RunWorkerCompletedEventArgs.cs
- ProgressBarHighlightConverter.cs
- RequestTimeoutManager.cs
- EventLogPermissionHolder.cs
- Camera.cs